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.
soapUI erledigt den Job auch, check out diesen Blog-Post um zu beginnen.
Probieren Sie das Firefox-Addon-Poster aus, das einfach zu verwenden ist und Sie schnell einsatzbereit macht
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.
Check out Fiddler
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.
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.)
Ü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
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
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
sie können den Simple REST -Client auch als Erweiterung für Google Chrome verwenden. https://chrome.google.com/webstore/detail/fhjcajmcbmldlhcimfajhfbgofnpcjmb
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!
Ich benutze REST - Konsolenerweiterung für Google Chrome und es ist bei weitem das Beste, was ich bisher ausprobiert habe
(Update 2: Link korrigieren)
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.
Ich teste RESTful-Services mit einem internen .NET-Framework (kein Problem beim Portieren in Java). Grundprinzipien:
Wenn Sie mehr Informationen wünschen, freue ich mich zu reden.
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.
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
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.
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.
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.
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.
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)
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.