2010-04-13 33 views
5

Me estoy preparando para bucear en las pruebas de un servicio RESTful. La mayoría de nuestros sistemas están construidos en Java y Eclipse, así que espero quedarme allí.¿Hay un paquete de Java para probar API RESTful?

Ya he encontrado rest-client (http://code.google.com/p/rest-client/) para hacer pruebas manuales y exploratorias, pero ¿hay una pila de clases de Java que me hagan la vida más fácil? Estoy usando testNG para la plataforma de prueba, pero me encantaría las bibliotecas de ayuda que pueden ahorrarme tiempo.

He encontrado http4e (http://www.ywebb.com/) pero realmente me gustaría algo FOSS.

Respuesta

3

¿Sería JMeter una opción? Tiene muestreadores de solicitud HTTP que admiten todos los métodos HTTP y las aserciones para validar la respuesta.

Otra alternativa podría ser algo como soapUI que tiene una API que podría ser integrated con sus casos de prueba, aunque no lo he intentado.

+0

mirado en JMeter. Parece interesante. SoapUI puede ser bueno para la API de SOAP que voy a tener que probar pronto. –

+0

SoapUI aparentemente también tiene soporte total para REST a pesar de su nombre. –

1

CXF aparentemente tiene soporte para REST. Todavía no he probado el soporte de REST, pero creo que CXF es una implementación de servicios web magnífica, flexible y basada en estándares.

+0

CXF hace mucho más de lo que estoy buscando. Estoy esperando solo un cliente. –

0

Aparentemente, rest-client tiene una biblioteca integrada. Estoy usando eso con testNG y XStream y parece ser exactamente lo que ordenó el médico.

8

Puede usar REST Assured, lo que hace que sea muy fácil probar y validar los servicios REST en Java desde JUnit o TestNG. P.ej. digamos que una solicitud GET a un servicio llamado "/ lotería" devuelve la siguiente JSON

{ "lotto":{ "lottoId":5, "winning-numbers":[2,45,34,23,7,5,3], "winners":[{ "winnerId":23, "numbers":[2,45,34,23,3,5] },{ "winnerId":54, "numbers":[52,3,12,11,18,22] }] } }

entonces puede presentar la solicitud y validar la respuesta (en este caso que la lotería Identificación igual a 5) con el descanso asegurado de esta manera:

expect().body("lotto.lottoId", equalTo(5)).when().get("/lotto"); 
0

Estaba trabajando hoy en día en la prueba unitaria de un servicio de descanso, necesitaba probar el servidor desplegado para verificar algunos requisitos de concurrencia, así que necesitaba probar el servicio de descanso deployes.

Al principio intentaron la solución sugested de Johan, y comenzaron con el resto confiado con algunas éxito, pero busca más documentación, encontré esto:

http://uttesh.blogspot.com/2012/09/spring-rest-web-service-test.html

su base en una biblioteca de primavera, así, si está utilizando la primavera, seguirá usando las cosas del mismo proveedor, lo que siempre es agradable.

También encontré las librerías a partir de la primavera fáciles de entender que puede estar seguro, pero así soy yo;)