tutorial servicio services restful invocar desde create consumir consume java web-services rest testing rest-client
Prueba REST

java - services - Prueba de servicios web REST



java consume rest service json (24)

Actualmente estoy investigando la aplicación CLI de wsclient para este propósito ( http://wso2.org/library/3362 ). Es bastante prometedor y se puede usar para hackear una prueba rápida desde un shell bash. Por supuesto, como mencionamos aquí, muchas de las herramientas que vienen con un sistema * nix harán el trabajo con un tidbit de codificación / scripting

Mi organización está trabajando en la construcción de servicios web RESTful en el servidor de aplicaciones JBoss. El equipo de control de calidad se usa para probar los servicios web SOAP hasta ahora usando SoapUI. SoapUI tiene una nueva versión que tiene capacidades REST. Estamos considerando usar eso.

  1. ¿Hay algún servicio RESTful disponible públicamente en la red gratis que alguien pueda probar?
  2. ¿Qué herramientas están disponibles (y usadas) para probar los servicios web RESTful?

CURL te lleva a la mitad de allí. La otra mitad es verificar los encabezados, los códigos de respuesta y el contenido de la entidad para asegurarse de que sea válida. Podría usar una variedad de herramientas para eso (en el scripting de shell, conectar el encabezado y el contenido a los archivos, y diferirlos podría hacer el truco). No sería tan difícil perfeccionar aún más el conjunto de herramientas, tal vez apilar el curl con el marco de pruebas de unidades que elija.

Construí un panel de prueba de servicio web con AJAX. No fue tan difícil en realidad. Usted tiene algunos problemas de seguridad para resolver (es decir, asegurarse de tener el conjunto de pruebas en el mismo servidor, o tal vez el Javascript firmado).




Estoy probando servicios RESTful con un framework .NET interno (no hay problema para portarlo en Java). Principios básicos:

  • construir cliente (para hacer las llamadas)
  • clases de tipos de compilación (XML y JSON)
  • deserializar la respuesta
  • afirmar cosas

Si quieres más información, me alegra hablar.


Estoy usando la extensión de la consola REST para Google Chrome y es de lejos la mejor que he probado. También es compatible con varios mecanismos de seguridad como OAuth

(actualización 2: arreglar el enlace)


He escrito un programa específicamente para probar los servicios web REST. Es una aplicación bastante simple escrita en .NET 2.0 (solo la he probado en Windows Vista, pero también debería funcionar en XP). La aplicación utiliza HttpWebRequest para realizar solicitudes y muestra la respuesta resultante, así como los encabezados de la solicitud y respuesta. He hecho algunas pruebas, pero pensé que podría ayudarte a probar tus servicios web.

Prueba REST


He estado usando JMeter para esto, especialmente para cosas como la prueba de carga. Es similar a SoapUI (que también he usado), pero se orientó más hacia las páginas web de prueba, lo que también lo hace bastante bueno para probar los servicios RESTful.


La forma más sencilla de probar el servicio web REST es utilizando curl en la terminal.

Hay algunos códigos que usé para probar mi servicio web de rieles. Puede modificarlos para que se ajusten a sus servicios.

OBTENER

curl http://localhost:3000/courses.json

ENVIAR

curl -H "Content-Type:application/json" -d ''{"courseCode":"55555","courseName":"SEEEE","courseYr":999}'' http://localhost:3000/courses.json

PUT en Raills: eg1 (con todos los campos):

curl -H "X-Http-Method-Override: put" -H "Content-Type:application/json" -d ''{"courseCode":"123456","courseName":"AAAAAAAA","courseYr":12345}'' http://localhost:3000/courses/5.json

eg2 (con el campo solo editado):

curl -H "X-Http-Method-Override: put" -H "Content-Type:application/json" -d ''{"courseYr":999999999}'' http://localhost:3000/courses/3.json

BORRAR en rieles con id proporcionado

curl -H "X-Http-Method-Override: delete" -H "Content-Type:application/json" -d ''{"id":4}'' http://localhost:3000/courses/5.json


Para Java, también existe RESTFuse , que permite desarrollar pruebas unitarias que pueden verse así:

@Rule public Destination destination = new Destination("http://localhost:8080/rest/"); @HttpTest( method = Method.GET, path = "/status" ,authentications = @Authentication(type = AuthenticationType.BASIC, user = "joe", password = "doe") ) public void testAuthRhqadmin() { com.eclipsesource.restfuse.Assert.assertOk(response); }

Esta prueba se ejecuta contra http://localhost:8080/rest/status y se autentica como usuario joe con password doe. El cuerpo del método comprueba que la llamada GET devuelve un código de estado 200.


Para probar un servicio REST, puede probar REST Assured, lo que hace que sea muy simple probar los servicios REST y validar la respuesta en Java (utilizando JUnit o TestNG).


Para realizar pruebas REST avanzadas, puede probar HttpMaster .
Admite parámetros dinámicos, visores amigables para XML / JSON y varios tipos de validaciones de datos de respuesta que pueden combinarse en expresiones lógicas.
Para solicitudes HTTP básicas, algunos complementos del navegador serán suficientes.


Por favor, prueba Firefox addon Poster, que es fácil de usar y te ayuda a encontrarlo rápidamente.


Probé numerosos clientes REST y, con mucho, lo mejor que he usado es la aplicación Chrome: DHC .

DHC (también conocido como Dev HTTP Client) está diseñado y desarrollado por un desarrollador para que los desarrolladores realicen descubrimiento, manipulación y prueba directa de recursos HTTP más fácilmente. Además de la función principal, enviar / recibir solicitudes / respuestas HTTP personalizadas, permite guardar permanentemente una solicitud en un repositorio local para su posterior reutilización y, además, la declaración de solicitud puede incluir variables que son específicas del contexto. Con el uso de contextos, puede cambiar fácilmente entre varios entornos sin modificar la declaración de solicitud. (por ejemplo, de un entorno de prueba a la producción)


Probar los servicios web completos de REST es una tarea fácil de realizar. Los ad-ons gratuitos están disponibles en los navegadores como REST Client desde donde debe enviar un servicio web con el tipo de método esperado / requerido: GET / POST / PUT / DELETE Si los parámetros coinciden, la salida se generará en el cuerpo del navegador .


Prueba el httplib de Python. Es muy fácil, especifique el método, url, y use urllib.urlencode para los parámetros / cuerpo POST.

Esto se puede combinar con el módulo integrado unittest si lo desea, para informar errores.


Sé que es una pregunta muy antigua, pero podría ser útil para otros. Solo para responder a su primera pregunta, puede consultar here para obtener algunos servicios web REST para probar.

El plug-in Fiddler and Poster en Firefox se puede usar para probar cualquier servicio web REST. SoapUI también viene con el servicio RESTful de servicios web.


SOA Cleaner, es una herramienta de prueba que prueba el jabón y el reposo (también WCF, pero parece que no necesitas esa característica). Es muy intuitivo y utilizable. Escrito en .NET. Una versión gratuita también está disponible. se puede descargar desde http://xyrow.com . ¡Buena suerte!


Si te gusta usar Ruby, hay una joya REST-Client para él

Para los evaluadores, me parece que el rubí es un lenguaje realmente fácil de aprender, y tiene algunas excelentes herramientas como Cucumber para realizar pruebas de aceptación del estilo BDD.




OnionTest sigue siendo beta, pero bastante útil



Puede ejercer servicios web utilizando bits bastante triviales de Python. Dependiendo de su seguridad, puede simplemente usar el urllib o urllib2 de urllib2 para hacer sus solicitudes REST y examinar sus respuestas.

Además, es posible que desee utilizar Python unittest para controlar la ejecución de las pruebas de Python de sus servicios REST.

class TestSomeREST( unittest.TestCase ): def setUp(self): REALM = "[email protected]" self.client= RESTClient( "localhost", 18000, "tester", "tester", REALM ) def test_1_get(self): response = self.client.get(''/this/that/other/2/'') self.failUnlessEqual(200, response.status_code) j1= JSONDecoder().decode(response.content) self.assertEquals(2, j1[0][''pk''] ) entity= j1[0][''fields''] self.assertEquals(''Some Other Group'', entity[''name'']) self.assertEquals(''E1G2'', entity[''customer_id''])

La clase RESTClient utiliza urllib2 para pasar a través de autenticación resumida para cada solicitud. Es bastante complejo, pero puedo compartir la esencia si es de interés.