2010-04-13 4 views
5

Mi sto preparando per immergermi nei test di un servizio RESTful. La maggior parte dei nostri sistemi è costruita in Java ed Eclipse, quindi spero di rimanere lì.Esiste un pacchetto Java per testare le API RESTful?

Ho già trovato rest-client (http://code.google.com/p/rest-client/) per fare test manuali ed esplorativi, ma c'è una pila di classi java che possono semplificarmi la vita? Sto usando testNG per la piattaforma di test, ma mi piacerebbe librerie helper che possano farmi risparmiare tempo.

Ho trovato http4e (http://www.ywebb.com/) ma mi piacerebbe davvero qualcosa di FOSS.

risposta

3

JMeter sarebbe un'opzione? Dispone di campionatori HTTP Request che supportano tutti i metodi e le asserzioni HTTP per convalidare la risposta.

Un'altra alternativa potrebbe essere qualcosa come soapUI che ha un'API che potrebbe essere integrated con i casi di test, anche se non l'ho ancora provato.

+0

guardato in JMeter. Sembra interessante. SoapUI può essere buono per l'API SOAP che sto per testare presto. –

+0

Anche SoapUI ha il supporto completo per REST nonostante il loro nome. –

1

CXF apparentemente ha il supporto per REST. Non ho ancora provato il supporto REST, ma penso che CXF sia un'implementazione di servizi web superba, flessibile e basata su standard.

+0

CXF fa molto più di quello che sto cercando. Spero solo per un cliente. –

0

Apparentemente rest-client ha una libreria incorporata. Lo sto usando con testNG e XStream e sembra essere esattamente ciò che il medico ha ordinato.

8

È possibile utilizzare REST Assured che rende molto semplice testare e convalidare i servizi REST in Java da JUnit o TestNG. Per esempio. diciamo che una richiesta GET a un servizio chiamato "/ Lotto" restituisce il seguente 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] }] } }

allora si può fare la richiesta e convalidare la risposta (in questo caso che il Lotto id pari a 5) con il riposo Assured in questo modo:

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

Oggi stavo lavorando al test delle unità di un servizio di assistenza, avevo bisogno di testare il server distribuito per verificare alcuni requisiti di concorrenza, quindi avevo bisogno di testare il servizio di riposo delle distribuzioni.

All'inizio ho cercato la soluzione sugested da Johan, e ha iniziato con resto assicurato con qualche successo, ma guarda per più di documentazione, ho trovato questo:

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

la sua base a una libreria di primavera dunque, se usi la primavera, continuerai a utilizzare lo stesso fornitore, che è sempre bello.

Inoltre ho trovato le librerie dalla primavera più facile da capire di stare tranquilli, ma è solo a me;)