Testen von Webdiensten

4.2+

Mit QF-Test Version 4.2 wurde die Möglichkeit eingeführt Webdienste zu testen. Bei HTTP-Requests handelt es sich um eine Technologie, die eher für Entwickler und/oder Programme gedacht sind. Das Aufnehmen einer Browser-HTTP Anfrage und das anschließende Konvertieren in eine Server-HTTP Anfrage ist zwar technisch möglich, macht aber oft nur bedingt Sinn. Daher wird empfohlen, dass Sie die Dokumentation des zu testenden Webdienstes kennen und nutzen.

REST Webservices

Der Knoten 'Server-HTTP-Request' kann genutzt werden um beliebige HTTP Anfragen zu verschicken.

Der HTTP Standard und Webdienste

Webdienste und Webseiten benutzen das Hypertext Transfer Protocol (kurz HTTP). Dieses Protokoll stellt einen textbasierten Standard dar, der aus Anfragen und Antworten besteht. Dieser sehr nützliche und überraschend kurze Internetstandard kann hier eingesehen werden:

Hypertext Transfer Protocol -- HTTP/1.1

HTTP Authentication, 2 Basic Authentication Scheme

Eine Liste der aktuell unterstützen Anfrage Methoden

Unterstützte HTTP Methoden
GET
POST
PUT
DELETE
HEAD
OPTIONS
TRACE
Tabelle 21.1:  Unterstützte HTTP Methoden

HTTP Anfragen

Lassen Sie uns eine einfache GET Anfrage eines Browsers analysieren. Wenn Sie eine URL in die Adresszeile des Browsers eingeben wird eine solche HTTP Anfrage automatisch vom Browser erzeugt. Mit Hilfe der Web Entwicklertools (zum Beispiel in Chrome) kann die abgesendete Anfrage angezeigt werden. Die Anfrage besteht hierbei aus den Teilen Header, der URL und der Payload (body). Die Payload ist optional und kann z.B. bei POST/PUT Anfragen verwendet werden.

Browser send HTTP request
Abbildung 21.1:  Die vom Browser abgesetzte HTTP GET Anfrage

Die Antwort des Servers besteht aus einem Response code, einem Header und dem optionaler Payload.

GET response
Abbildung 21.2:  Die GET Antwort des Webservers

Beispiele

Bei der Verwendung des HTTP Server Request Knotens muss darauf geachtet werden, dass alle benötigten Daten in den dafür vorgesehenen Attributen spezifiziert werden, also URL, Header und Payload. Wenn Sie Teile der Antwort des Webservers benötigen, sollten Sie einen entsprechenden Variablename in das jeweilige Attribut unter "Variablen für die Antwort des Servers" eintragen. Beispiele für Verwendung des HTTP Server Request Knoten befinden sich unter demo/webservices in der Beispieltestsuite webservice_testing.qft.

Die Beispiele wurden mit Hilfe eines HTTP Proxies erstellt. Beispiele für solche Proxies sind Charles (https://www.charlesproxy.com/) oder seine freie Alternative James (https://github.com/james-proxy/james).