Testowanie REST webservices [zamknięty]

Moja organizacja pracuje nad budowaniem RESTful webservices na JBoss appserver. Zespół QA służy do testowania serwisów internetowych SOAP za pomocą SoapUI. SoapUI ma nową wersję, która ma możliwości odpoczynku. Rozważamy użycie tego.

  1. czy są jakieś publicznie dostępne usługi RESTful dostępne w sieci za darmo, które ktoś mógłby przetestować ?
  2. Jakie narzędzia są dostępne (i używane) do testowania usług RESTful web ?
Author: TheWhiteRabbit, 2008-10-15

24 answers

SoapUI zrobi to również, Sprawdź ten post na blogu aby zacząć.

 28
Author: Ole Lensmar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-07-12 14:56:55

Spróbuj Firefox addon Poster, który jest prosty w obsłudze i szybko się uruchamia

 25
Author: user28192,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-15 10:42:07

Możesz wykonywać usługi internetowe używając dość trywialnych bitów Pythona. W zależności od Twojego bezpieczeństwa, możesz po prostu użyć urllib lub urllib2 Pythona, aby wykonać prośby o odpoczynek i sprawdzić swoje odpowiedzi.

Dodatkowo możesz użyć Pythona unittest do kontrolowania wykonywania testów Pythona w usługach REST.

class TestSomeREST( unittest.TestCase ):
    def setUp(self):
        REALM = "[email protected]"
        self.client= RESTClient( "localhost", 18000, "tester", "tester", REALM )
    def test_1_get(self):
        response = self.client.get('/this/that/other/2/')
        self.failUnlessEqual(200, response.status_code)
        j1= JSONDecoder().decode(response.content)
        self.assertEquals(2, j1[0]['pk'] )
        entity= j1[0]['fields']
        self.assertEquals('Some Other Group', entity['name'])
        self.assertEquals('E1G2', entity['customer_id'])

Klasa RESTClient używa urllib2 do przekazywania uwierzytelniania digest dla każdego żądania. To dość skomplikowane, ale mogę podzielić się istotą, jeśli to interesujące.

 20
Author: S.Lott,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-15 03:09:11

Sprawdź Skrzypek

 12
Author: TheSoftwareJedi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-15 02:43:17

CURL zaprowadzi cię do połowy. Druga połowa sprawdza nagłówki, kody odpowiedzi i zawartość encji, aby upewnić się, że jest dobra. Możesz użyć do tego różnych narzędzi (w skryptach powłoki, przekierowywanie nagłówka i zawartości do plików, a różnicowanie ich może po prostu załatwić sprawę). Nie byłoby to trudne do dalszego udoskonalenia zestawu narzędzi, może układanie zwijać się z wybraną strukturą testowania jednostek.

Zbudowałem panel testowy rest webservice z Ajaxem. To nie tak. właściwie to trudno. Musisz rozwiązać pewne problemy z bezpieczeństwem (np. upewnić się, że masz pakiet testowy na tym samym serwerze, a może podpisany Javascript.)

 8
Author: Jonathan Arkell,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-15 02:41:45

Aby przetestować usługę REST, możesz spróbować rest Assured, co bardzo ułatwia testowanie usług REST i walidację odpowiedzi w Javie (za pomocą JUnit lub TestNG).

 8
Author: Johan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-01-05 16:48:42

Sprawdź listonosza - https://chrome.google.com/webstore/detail/fdmmgilgnpjigdojojpjoooidkmcomcm/. jest to narzędzie, nad którym pracowałem w ciągu ostatnich kilku miesięcy i ostatnio z opinii, które otrzymywałem, staje się bardzo przydatne w dużych projektach REST, pomagając jednocześnie w testowaniu podstawowych punktów końcowych REST.

Kod do tego jest również dostępny na Githubie. https://github.com/a85/POSTMan-Chrome-Extension

 7
Author: Abhinav,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-06-02 00:25:15

Najprostszym sposobem przetestowania usługi REST web jest użycie curl w terminalu.

Są kody, których użyłem do testowania mojej usługi internetowej rails. Możesz je modyfikować, aby pasowały do Twoich usług.

GET

curl http://localhost:3000/courses.json

POST

curl -H "Content-Type:application/json"  -d '{"courseCode":"55555","courseName":"SEEEE","courseYr":999}' http://localhost:3000/courses.json

Wstawić Raile: eg1 (ze wszystkimi polami):

curl -H "X-Http-Method-Override: put" -H "Content-Type:application/json"  -d '{"courseCode":"123456","courseName":"AAAAAAAA","courseYr":12345}' http://localhost:3000/courses/5.json

Eg2 (z polem tylko edytować):

curl -H "X-Http-Method-Override: put" -H "Content-Type:application/json"  -d '{"courseYr":999999999}' http://localhost:3000/courses/3.json

DELETE in rails with ID provided

 curl -H "X-Http-Method-Override: delete" -H "Content-Type:application/json"  -d '{"id":4}' http://localhost:3000/courses/5.json
 6
Author: code4j,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-11 16:56:07

Nie testowałem jeszcze, ale ta aplikacja Java wydaje się być miła do testowania usług REST. Istnieje również samouczek na temat Javalobby.

Aplikacja Java: http://code.google.com/p/rest-client/

Tuto: http://java.dzone.com/announcements/wiztoolsorg-restclient-21-rele

 4
Author: Valentin Jacquemin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-19 13:31:43

Możesz użyć Simple Rest Client jest rozszerzeniem dla Google Chrome zbyt https://chrome.google.com/webstore/detail/fhjcajmcbmldlhcimfajhfbgofnpcjmb

 3
Author: Chuck Mah,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-12-20 16:02:23

Soa Cleaner, to narzędzie testowe, które testuje zarówno mydło, jak i resztę (również WCF, ale wydaje się, że nie potrzebujesz tej funkcji). Jest bardzo intuicyjny i użyteczny. Napisany w .NET. dostępna jest również darmowa wersja. można pobrać ze strony http://xyrow.com powodzenia!

 2
Author: Clangon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-16 08:02:59

Testuję usługi RESTful z wewnętrznym frameworkiem. NET (nie ma problemu z portowaniem go w Javie). Podstawowe zasady:

  • build client (do wykonywania połączeń)
  • build type classes (XML i JSON)
  • deserialize response
  • assert stuff

Jeśli chcesz więcej informacji, chętnie porozmawiam.

 1
Author: Andrei Marfievici,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-05-29 14:25:12

Używam rozszerzenie konsoli REST dla Google Chrome i jest zdecydowanie najlepszy próbowałem. Obsługuje również różne mechanizmy bezpieczeństwa, takie jak OAuth

(update 2: fix link)

 1
Author: Michael Bavin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-09 14:35:13

Dla Javy istnieje również RESTFuse , który pozwala na tworzenie testów jednostkowych, które mogą wyglądać tak:

@Rule
public Destination destination = new Destination("http://localhost:8080/rest/");


@HttpTest( method = Method.GET, path = "/status" ,authentications =
   @Authentication(type = AuthenticationType.BASIC, user = "joe", password = "doe")
)
public void testAuthRhqadmin() {
    com.eclipsesource.restfuse.Assert.assertOk(response);
}

Ten test działa przeciwko http://localhost:8080/rest/status i uwierzytelnia użytkownika joe hasłem Doe. Ciało metody sprawdza, czy wywołanie GET zwraca kod stanu 200.

 1
Author: Heiko Rupp,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-09-06 10:46:25

Wypróbuj Httplib Pythona. Jest to bardzo proste, określasz metodę, adres url i używasz urllib.urlencode dla parameters / POST body.

To może być połączone z wbudowanym modułem unittest, jeśli chcesz, do zgłaszania błędów.

 0
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-15 03:11:35

Używam JMeter do tego, szczególnie do rzeczy takich jak testowanie obciążenia. Jest podobny do SoapUI (którego również używałem), ale nastawiony bardziej na testowanie stron internetowych, co czyni go całkiem przyzwoitym w testowaniu usług RESTful.

 0
Author: Mike Desjardins,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-15 19:53:38

Napisałem program specjalnie do testowania usług REST Web. Jest to dość prosta aplikacja napisana w. NET 2.0(testowałem ją tylko na Windows Vista, ale powinna działać również na XP). Aplikacja używa HttpWebRequest do składania żądań i wyświetla wynikową odpowiedź, a także nagłówki żądania i odpowiedzi. Zrobiłem trochę testów, ale pomyślałem, że to może pomóc ci przetestować swoje usługi internetowe.

Test REST

 0
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-12-24 03:40:37

Obecnie badam aplikację wsclient CLI w tym celu ( http://wso2.org/library/3362 ). jest to dość obiecujące i może być użyte do włamania szybkiego testu z powłoki bash. Oczywiście, jak wielu tutaj wspomniało, wiele narzędzi dostarczanych z systemem * nix wykona zadanie z odrobiną kodowania / skryptowania

 0
Author: verboze,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-12-08 02:23:32

Jeśli lubisz używać Ruby jest Rest-Client gem dla niego

Dla testerów uważam, że ruby jest naprawdę łatwym językiem do nauki i ma kilka doskonałych narzędzi, takich jak Cucumber do robienia testów akceptacyjnych stylu BDD.

 0
Author: Chuck van der Linden,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-01-11 00:41:56

Próbowałem wielu klientów REST i zdecydowanie najlepszą, jaką użyłem, jest aplikacja Chrome: DHC .

DHC (znany również jako Dev HTTP Client) został zaprojektowany i opracowany przez dewelopera dla programistów, aby ułatwić bezpośrednie wykrywanie zasobów HTTP, manipulację i testowanie. Oprócz głównej funkcji, wysyłania / odbierania własnych żądań/odpowiedzi HTTP, pozwala na stałe zapisać żądanie do lokalnego repozytorium w celu późniejszego ponownego użycia, a ponadto deklaracja żądania może zawierać zmienne które są specyficzne dla kontekstu. Za pomocą kontekstów można łatwo przełączać się między różnymi środowiskami bez modyfikowania deklaracji żądania. (np. ze środowiska testowego do produkcji)

 0
Author: Andaris,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-26 16:19:35

Testowanie Rest full web services jest łatwym zadaniem. Darmowe ad-ony są dostępne w przeglądarkach jako klient REST, z którego musisz wysłać usługę internetową z oczekiwanym / wymaganym typem metody: GET / POST/PUT/DELETE Jeśli parametry są dopasowane, wyjście zostanie wygenerowane w ciele przeglądarki.Tutaj wpisz opis obrazka

 0
Author: mohit sarsar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-18 09:25:11

Wiem, że to bardzo stare pytanie, ale może być pomocne dla innych. Aby odpowiedzieć na pierwsze pytanie, możesz sprawdzić tutaj , aby przetestować kilka WebServices.

Wtyczka Fiddler i Poster w Firefoksie może być używana do testowania dowolnych Usług Sieciowych REST. SoapUI jest również wyposażony w obsługę RESTful webservices.

 0
Author: Manoj,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-01 07:45:00

Dla zaawansowanych testów REST można spróbować HttpMaster.
obsługuje parametry dynamiczne, przyjazne przeglądarki dla XML/JSON oraz różne typy walidacji danych odpowiedzi, które można łączyć w wyrażenia logiczne.
Dla podstawowych żądań http wystarczy wtyczka przeglądarki.

 0
Author: Joxi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-01 19:34:18

OnionTest wciąż beta, ale całkiem przydatny

 -1
Author: koos,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-08-16 06:16:25