2010-04-13 10 views
5

Ich mache mich bereit, in die Prüfung eines RESTful-Dienstes einzutauchen. Die meisten unserer Systeme sind in Java und Eclipse gebaut, also hoffe ich, dort zu bleiben.Gibt es ein Java-Paket zum Testen von RESTful-APIs?

Ich habe bereits Rest-Client (http://code.google.com/p/rest-client/) für manuelle und explorative Tests gefunden, aber gibt es einen Stapel von Java-Klassen, die mein Leben leichter machen können? Ich verwende testNG für die Testplattform, würde aber Helferbibliotheken lieben, die mir Zeit sparen können.

Ich habe http4e (http://www.ywebb.com/) gefunden, aber ich würde wirklich etwas FOSS mögen.

Antwort

3

Wäre JMeter eine Option? Es verfügt über HTTP-Request-Sampler, die alle HTTP-Methoden und Assertions unterstützen, um die Antwort zu validieren.

Eine andere Alternative könnte etwas wie soapUI sein, das eine API hat, die integrated mit Ihren Testfällen sein könnte, obwohl ich es nicht versucht habe.

+0

in JMeter Sieht. Sieht interessant aus. SoapUI kann gut für die SOAP API sein, die ich bald testen muss. –

+0

SoapUI hat anscheinend auch volle Unterstützung für REST trotz ihres Namens. –

1

CXF hat anscheinend Unterstützung für REST. Ich habe die REST-Unterstützung noch nicht selbst ausprobiert, aber ich denke, CXF ist eine hervorragende, flexible, standardbasierte Webservice-Implementierung.

+0

CXF macht viel mehr als ich suche. Ich hoffe nur auf einen Kunden. –

0

Offenbar hat rest-client eine Bibliothek eingebaut. Ich benutze das mit testNG und XStream und es scheint genau zu sein, was der Arzt bestellt hat.

8

Sie können REST Assured verwenden, wodurch es sehr einfach ist, REST-Dienste in Java von JUnit oder TestNG aus zu testen und zu validieren. Z.B. Lassen Sie sich sagen, dass eine GET-Anforderung an einen Dienst namens „/ Lotto“ gibt die folgende 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] }] } }

dann können Sie den Antrag stellen und die Antwort bestätigen (in diesem Fall, dass Lotto-ID gleich 5) mit REST Assured wie folgt aus:

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

Ich arbeitete heute um die Unit-Tests eines Restdienstes, ich musste den implementierten Server testen, um einige Nebenläufigkeitsanfragen zu prüfen, also musste ich den Deployes Rest Service testen.

Zuerst versuchte ich die Lösung von Johan sugested und begann mit REST mit einigem Erfolg Assured, aber für mehr Dokumentation suchen, fand ich diese:

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

seine basierend auf einer Feder Bibliothek, so Wenn Sie den Frühling benutzen, werden Sie weiterhin die Sachen des gleichen Anbieters verwenden, was immer nett ist.

Auch fand ich die Libs von Frühling einfacher als REST zu verstehen Assured, aber es ist nur ich;)

Verwandte Themen