2010-04-13 8 views
5

Przygotowuję się do nurkowania w testowaniu usługi RESTful. Większość naszych systemów jest zbudowana w Javie i Eclipse, więc mam nadzieję, że tam pozostanę.Czy istnieje pakiet Java do testowania interfejsów API RESTful?

Znalazłem już klienta-rezydenta (http://code.google.com/p/rest-client/) do wykonywania testów ręcznych i eksploracyjnych, ale czy jest tam stos klas java, które mogą ułatwić mi życie? Używam testNG na platformie testowej, ale kocham biblioteki pomocnicze, które mogą zaoszczędzić mi czasu.

Znalazłem http4e (http://www.ywebb.com/), ale naprawdę chciałbym coś FOSS.

Odpowiedz

3

Czy JMeter byłby opcją? Ma samplery żądań HTTP, które obsługują wszystkie metody HTTP i asercje w celu sprawdzenia poprawności odpowiedzi.

Inną alternatywą może być coś takiego jak soapUI, które ma interfejs API, który może być integrated ze swoimi testowymi przypadkami, chociaż tego nie próbowałem.

+0

spojrzał JMeter. Wygląda ciekawie. SoapUI może być dobre dla interfejsu API SOAP, który niedługo będę musiał przetestować. –

+0

SoapUI również ma pełne wsparcie dla REST pomimo ich nazwy. –

1

CXF najwyraźniej ma wsparcie dla REST. Jeszcze nie próbowałem obsługi REST, ale myślę, że CXF jest znakomitą, elastyczną, opartą na standardach implementacją usług sieciowych.

+0

CXF robi znacznie więcej niż szukam. Mam nadzieję na klienta. –

0

Najwyraźniej rest-client ma wbudowaną bibliotekę. Używam tego z testNG i XStream i wygląda na to, że dokładnie to, co zamówił lekarz.

8

Można użyć REST Assured, co bardzo ułatwia testowanie i sprawdzanie usług REST w Javie z JUnit lub TestNG. Na przykład. powiedzmy, że żądanie GET do usługi o nazwie „/ lotto” zwraca następujący 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] }] } }

następnie można dokonać żądania i zatwierdź odpowiedź (w tym przypadku, że lotto id równym 5) REST zapewnił tak:

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

Pracowałem dzisiaj nad testowaniem urządzenia usługi odpoczynku, musiałem przetestować wdrożony serwer, aby sprawdzić niektóre wymagania współbieżności, więc musiałem przetestować usługę odpoczynku wdrażania.

Początkowo starałem rozwiązanie sugested przez Johan, i zaczęło się pewny, z niektórych sukcesu, ale wygląda na więcej dokumentacji, znalazłem to:

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

jego podstawie biblioteki wiosennym, tak jeśli używasz sprężyny, będziesz nadal używał rzeczy od tego samego dostawcy, co zawsze jest miłe.

Również znalazłem libs od wiosny łatwiejsze do zrozumienia niż pewny, ale to tylko ja;)

Powiązane problemy