RESTful Services testen

Bei der Entwicklung eines Clients für einen RESTful Webservice (oder auch bei der Entwicklung des Webservice selbst), reicht es manchmal, nur schnell ein neue oder geänderte Ressource zu testen: stimmt der URI einer Ressource und deren Parameter, wurden die richtigen HTTP-Header gesetzt, sind die Daten im Body valide?

Wird ein Webbrowser verwendet, so kann man in der Regel nur die HTTP Methoden GET und POST testen – also das Abrufen und Anlegen von Ressourcen. Möchte man allerdings auch prüfen, ob das Ändern und Löschen funktioniert (PUT und DELETE) und möchte man festlegen, in welchem Format die Daten übertragen werden (durch das Setzen eines Accept-Headers), dann benötigt man entsprechende Werkzeuge…

Ausgereifte Testwerkzeuge wie das kostenlose SoapUI, mit denen sogar automatisierte Integrations- und Lasttests möglich sind und die Tests automatisch aus WSDL- oder WADL-Metainformationen generieren können, bieten diese Möglichkeit, sind für einen schnellen Test aber meist überdimensioniert.

Oberfläche (GUI) der Java-Applikation RESTClient

RESTClient

Möchte man keinen eigenen Testclient (z. B. mittels JavaScript und AJAX) schreiben oder auf Konsolen-Programme angewiesen sein, kann man als Firefox-Benutzer die RESTClient-Erweiterung installieren. Die Erweiterung lässt die Auswahl aller verfügbaren HTTP-Methoden zu (RFC2616 (HTTP/1.1) and RFC2518 (WebDAV)) und ermöglicht die Angabe optionaler HTTP-Header, beispielsweise um die Represenation einer REST-Ressource zu definieren: sprich in welchem Format Daten geliefert werden.

Noch ein weniger komfortabel ist das Java-Programm Rest-Client. Das Programm wird als Applikation für MacOS X und als ausführbares Java-Archiv (JAR) für andere Betriebssysteme angeboten. Zwar kann man keine WebDAV-Anwendungen testen, dafür können aber Transaktionen zwischen Client und Server aufgezeichnet werden (Trace) und Daten geladen und gespeichert werden.

Beide Programme sind mit Werkzeugen wie SoapUI nicht vergleichbar und sollen auch keine richtigen Integrationstests ersetzen, aber erleichtern das Programmieren und die Fehlersuche erheblich.

Tags: , , , , , , , ,

Hinterlasse eine Antwort