2010-01-29 20 views
26

Quiero probar mis aplicaciones RESTful directamente a través de HTTP y estoy buscando herramientas que puedan ayudarme con esa tarea. Básicamente estoy buscando un contenedor fácil para las solicitudes HTTP que pueden enviar, p. Formularios HTML o recursos serializados como JSON o XML.Formas de probar los servicios RESTful?

Sería genial si hay una manera de verificar si el servicio está realmente siguiendo las pautas de arquitectura REST (apatridia, URI, negociación de contenido, etc.) también.

Ser capaz de usarlo con JUnit sería una ventaja adicional. ¿Conoces alguna biblioteca que pueda ayudarme con lo que quiero hacer (y que es un poco más que un simple cliente http)?

+3

Eso no es realmente una "unidad "prueba más. No creo que esa palabra signifique nada más. –

+1

Es cierto ... Todavía estaba pensando en la forma de prueba de la unidad, la cambié. Sin embargo, sería bueno tener integración con Java (en realidad, las pruebas unitarias terminarán en una gran molestia con los simulacros de Solicitud y Respuesta y de alguna manera quiero evitar eso). – Daff

+2

No olvide que las pruebas unitarias no dictan qué es una unidad. El servicio reparador de IMHO se puede ver como una unidad si es lo suficientemente aislado, por ej. probado por pruebas unitarias de nivel más pequeño. –

Respuesta

13

Ver si rest-client es de alguna ayuda.

Editar: Actualmente estoy usando Postman - REST Client, un complemento de Google Chrome y ¡es increíble!

+1

todas las extensiones basadas en navegador le dificultarán probar su API porque no le permitirá crear un entorno independiente del navegador de alojamiento, por lo que no puede cambiar la mayoría de los encabezados http para probar su compresión gzip, por ejemplo –

+0

-1 para Postman, oculta el hecho de que el servidor devolvió 302 e hizo otro intento después de eso. – sinedsem

0

Quizás Selenium puede ser de alguna ayuda, pero seguramente no del todo.

+0

¿Por qué no completamente? –

+2

Selenium, por lo que sé, no tiene soporte directo para JSON y XML, es bueno para las pruebas de nivel del navegador - pruebas de interacción del usuario e incluso que, no todo funciona (AJAX). También una cosa que no me gusta especialmente sobre el Selenio (no me malinterpreten, me gusta usar Selenium en general) es el Selenium IDE, que debería ayudar, pero crea más problemas al generar código muy malo (por ejemplo, no JUnit4 soporte) y se comporta de manera diferente que el Servidor (pruebe las variables sin un parche). –

10

Creo que REST Assured le servirá muy bien. Es muy fácil enviar solicitudes y analizar respuestas XML y JSON. P.ej. digamos que una solicitud GET a "/ lotería" devuelve 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] 
    }] 
} 
} 

Puede hacer la solicitud y validar la respuesta de la siguiente manera:

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

Fiddler es una herramienta muy útil, puede crear Solicitudes HTTP basadas en XML con una variedad de verbos de solicitud como GET, POST, PUT, DELETE, etc.

http://www.fiddler2.com/fiddler2/

5

También existe el Test Framework Jersey (http://jersey.java.net/nonav/documentation/latest/user-guide.html#test-framework), pero como ya se ha mencionado Johan el RESTO marco -aseguró también me gustaría recomendar este marco - que tiene algunas funciones añaden agradables como una sintaxis similar a DSL, XPath y validación de esquema, fácil carga de archivos y el uso de las expresiones lambda maravilloso para buscar a través de estructuras JSON devueltos ..

he escrito dos artículos ...

Cuestiones relacionadas