it-swarm.com.de

Testen REST Internetdienste

Meine Organisation arbeitet daran, RESTful-Webservices auf dem JBoss-Anwendungsserver zu erstellen. Das QA-Team ist bisher daran gewöhnt, SOAP Webservices mit SoapUI zu testen. SoapUI hat eine neue Version, die REST Funktionen hat. Wir überlegen, das zu nutzen.

  1. Gibt es öffentlich zugängliche RESTful-Dienste im Internet, die jemand testen kann?
  2. Welche Tools stehen zum Testen von RESTful-Webdiensten zur Verfügung (und werden verwendet)?
63
anjanb

soapUI erledigt den Job auch, check out diesen Blog-Post um zu beginnen.

28
Ole Lensmar

Probieren Sie das Firefox-Addon-Poster aus, das einfach zu verwenden ist und Sie schnell einsatzbereit macht

25
user28192

Sie können Web-Services mit ziemlich trivialen Python-Bits ausüben. Abhängig von Ihrer Sicherheit können Sie einfach Pythons urllib oder urllib2 verwenden, um Ihre REST -Anfragen auszuführen und Ihre Antworten zu überprüfen.

Darüber hinaus möchten Sie möglicherweise Python unittest verwenden, um die Ausführung der Python-Tests Ihrer REST - Dienste zu steuern.

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'])

Die RESTClient-Klasse verwendet urllib2, um die Digest-Authentifizierung für jede Anforderung zu übergeben. Es ist ziemlich komplex, aber ich kann die Essenz teilen, wenn es von Interesse ist.

20
S.Lott

Check out Fiddler

12
TheSoftwareJedi

Um einen REST -Dienst zu testen, können Sie REST Assured versuchen. Dies macht es sehr einfach, REST -Dienste zu testen und die Antwort in Java (mit JUnit oder TestNG) zu überprüfen.

8
Johan

CURL bringt dich auf halben Weg. Die andere Hälfte prüft die Header, Antwortcodes und den Inhalt der Entitäten, um sicherzustellen, dass sie gut sind. Sie können dafür eine Reihe von Tools verwenden (in Shell Scripting Land können Sie den Header und den Inhalt an Dateien weiterleiten, und diese zu unterscheiden, könnte den Trick erfüllen). Es wäre nicht so schwierig, das Toolset weiter zu verfeinern, indem Sie es mit dem Unit-Testing-Framework Ihrer Wahl stapeln.

Ich habe mit AJAX ein Rest-Webservice-Testpanel erstellt. Es war eigentlich gar nicht so schwierig. Sie müssen einige Sicherheitsprobleme beheben (d. H. Sicherstellen, dass sich die Testsuite auf demselben Server befindet oder möglicherweise ein signiertes Javascript ist.) 

8
Jonathan Arkell

Überprüfen Sie Postman - https://chrome.google.com/webstore/detail/fdmmgilgnpjigdojojpjoooidkmcomcm/ . Dies ist ein Werkzeug, an dem ich in den letzten Monaten gearbeitet habe, und in letzter Zeit von den Rückmeldungen, die ich bekommen habe, ist es für große REST - Projekte sehr nützlich, während es beim grundlegenden REST - Endpunkttest hilft.

Der Code dafür ist auch auf Github verfügbar. https://github.com/a85/POSTMan-Chrome-Extension

8
Abhinav

Die einfachste Möglichkeit, den REST - Webdienst zu testen, ist die Verwendung von curl im Terminal.

Es gibt einige Codes, die ich zum Testen meines Webservices von Rails verwendet habe. Sie können sie an Ihre Services anpassen.

ERHALTEN

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

PUT in Raills: Eg1 (mit allen Feldern): 

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 (wobei das Feld nur bearbeitet werden kann):

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

DELETE in Rails mit bereitgestellter ID  

 curl -H "X-Http-Method-Override: delete" -H "Content-Type:application/json"  -d '{"id":4}' http://localhost:3000/courses/5.json
6
code4j

Ich habe es noch nicht getestet, aber diese Java-App scheint nett zu testen REST Dienste. Es gibt auch ein Tutorial zu Javalobby darüber.

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

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

4

sie können den Simple REST -Client auch als Erweiterung für Google Chrome verwenden. https://chrome.google.com/webstore/detail/fhjcajmcbmldlhcimfajhfbgofnpcjmb

3
Chuck Mah

SOA Cleaner ist ein Testwerkzeug, mit dem sowohl Seife als auch Rest getestet werden (auch WCF, aber Sie benötigen diese Funktion offensichtlich nicht). Es ist sehr intuitiv und brauchbar. In .NET geschrieben. Eine kostenlose Version ist ebenfalls verfügbar. kann von http://xyrow.com heruntergeladen werden. Viel Glück!

2
Clangon

Ich benutze REST - Konsolenerweiterung für Google Chrome und es ist bei weitem das Beste, was ich bisher ausprobiert habe

(Update 2: Link korrigieren)

1
Michael Bavin

Für Java gibt es auch RESTFuse , das die Entwicklung von Komponententests ermöglicht, die folgendermaßen aussehen können:

@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);
}

Dieser Test wird gegen http://localhost:8080/rest/status ausgeführt und als Benutzer joe mit dem Kennwort doe authentifiziert. Der Rumpf der Methode überprüft dann, ob der GET-Aufruf einen Statuscode von 200 zurückgibt.

1
Heiko Rupp

Ich teste RESTful-Services mit einem internen .NET-Framework (kein Problem beim Portieren in Java). Grundprinzipien:

  • client erstellen (um die Anrufe zu tätigen)
  • buildtyp-Klassen (XML und JSON)
  • antwort deserialisieren
  • zeug behaupten

Wenn Sie mehr Informationen wünschen, freue ich mich zu reden. 

1

Ich weiß, es ist eine sehr alte Frage, könnte aber für andere hilfreich sein. Um Ihre erste Frage zu beantworten, können Sie hier überprüfen, um einige REST - Webservices zu testen. 

Fiddler und Poster plug in Firefox können zum Testen aller REST - Webdienste verwendet werden. SoapUI bietet auch RESTful Webservices-Unterstützung. 

0
Manoj

Ich untersuche derzeit die Wsclient CLI-App für diesen Zweck ( http://wso2.org/library/3362 ). Es ist vielversprechend und kann verwendet werden, um einen schnellen Test von einer Bash-Shell zu hacken. Wie bereits erwähnt, werden viele der Tools, die mit einem * nix-System geliefert werden, die Aufgabe mit einem Leckerbissen Codierung/Scripting erfüllen

0
verboze

Ich habe ein Programm speziell zum Testen von REST Web Services geschrieben. Es ist eine ziemlich einfache Anwendung, die in .NET 2.0 geschrieben wurde (ich habe es nur unter Windows Vista getestet, sollte aber auch unter XP funktionieren). Die Anwendung verwendet HttpWebRequest, um Anforderungen zu stellen, und zeigt die resultierende Antwort sowie die Header für die Anforderung und Antwort an. Ich habe ein wenig getestet, aber ich dachte, es könnte Ihnen helfen, Ihre Webdienste zu testen.

REST Test

0
Ian Hopkins

Ich habe JMeter dafür verwendet, insbesondere für Dinge wie Belastungstests. Es ist ähnlich wie SoapUI (das ich auch verwendet habe), aber mehr auf das Testen von Webseiten ausgerichtet, was es auch recht anständig macht, RESTful-Dienste zu testen.

0
Mike Desjardins

Probieren Sie Pythons httplib aus. Es ist sehr einfach, Sie geben die Methode und die URL an und verwenden urllib.urlencode für die Parameter/POST-Body.

Wenn Sie möchten, kann dies mit dem eingebauten Modul für die Meldung von Fehlern kombiniert werden.

0
Andy

Wenn Sie Ruby mögen, gibt es ein REST-Client-Juwel

Für Tester finde ich, dass Ruby eine sehr einfach zu erlernende Sprache ist, und es verfügt über einige hervorragende Tools wie Cucumber, um BDD-Abnahmetests durchzuführen. 

Das Testen von REST vollständigen Webdiensten ist eine einfache Aufgabe Kostenlose Anzeigen sind als REST Client in den Browsern verfügbar, von denen aus Sie einen Webdienst mit dem erwarteten/erforderlichen Methodentyp senden müssen : GET/POST/PUT/DELETE Wenn die Parameter übereinstimmen, wird die Ausgabe im Browser des Browsers generiert.enter image description here

0
mohit sarsar

Ich habe zahlreiche REST -Clients ausprobiert und das Beste, was ich bisher verwendet habe, ist die Chrome-App: DHC .

DHC (alias Dev HTTP Client) wurde von einem Entwickler für Entwickler entwickelt und entwickelt, um das Erkennen, Manipulieren und Testen von HTTP-Ressourcen einfacher zu machen. Neben der Hauptfunktion, dem Senden und Empfangen von benutzerdefinierten HTTP-Anforderungen/-Antworten, können permanent Anforderungen in einem lokalen Repository zur späteren Wiederverwendung gespeichert werden. Außerdem kann die Anforderungsdeklaration kontextspezifische Variablen enthalten. Durch die Verwendung von Kontexten können Sie problemlos zwischen verschiedenen Umgebungen wechseln, ohne die Anforderungsdeklaration zu ändern. (z. B. von einer Testumgebung zur Produktion)

0
Andaris

Für fortgeschrittene REST Tests können Sie HttpMaster ausprobieren.
Es unterstützt dynamische Parameter, benutzerfreundliche Viewer für XML/JSON und verschiedene Arten von Antwortdatenvalidierungen, die zu logischen Ausdrücken kombiniert werden können.
Für grundlegende HTTP-Anforderungen reicht ein Browser-Plugin aus.

0
Joxi