Handbuch

35.12
HTTP Requests

Dieser Abschnitt befasst sich mit der Möglichkeit HTTP Requests mittels QFTest abzusenden.

35.12.1
'Server HTTP Request'

Web Dieser sehr spezielle Knoten bietet eine einfache Möglichkeit, einen GET oder POST Request direkt via HTTP/HTTPS an einen Webserver abzusetzen. Die Verwendung ist bei Lasttests oder Szenarien mit Verarbeitung von Massendaten (z.B. Ausfüllen von Formularen) sehr hilfreich, da beim Abspielen die Simulation von Nutzereingaben im SUT und die damit verbundene Abhängigkeit von den Ladezeiten des SUT entfallen. Die Verwendung von Requests stellt somit eine Ergänzung der in Kapitel 24 und Abschnitt 35.4 beschriebenen Funktionalität für Lasttests und datengetriebenes Testen dar.

Wenn der vom Server zurückgegebene Statuscode 400 oder größer ist, wird eine entsprechende Fehlermeldung in das Protokoll geschrieben. Detailinformationen zu den verschiedenen Statuscodes können sie unter http://www.w3.org/Protocols/HTTP/HTRESP.html nachlesen. Zusätzlich können Sie die Antwort des Servers einer Variablen zuweisen und über das Attribut 'Antwort des Servers in Protokoll schreiben' diese Antwort auch im Protokoll ablegen.

Enthalten in: Alle Arten von Sequenzen.

Kinder: Keine

Ausführung: Der GET/POST Request wird via HTTP/HTTPS direkt von QF-Test aus an die angegebene URL geschickt. Wenn der vom Server zurückgegebene Statuscode größer/gleich 400 ist wird eine entsprechende Fehlermeldung in das Protokoll geschrieben.

Attribute:

Server HTTP Request Attribute
Abbildung 35.72:  'Server HTTP Request' Attribute
'URL'

Die URL, an die der Request gesendet werden soll, exklusive der Parameter. Als Protokoll sind sowohl HTTP als auch HTTPS zulässig.

Internationalisierte Domainnamen (IDN) werden in der URL ebenso wie Pfade beginnend mit 'file:///' nicht unterstützt.

Variabel: Ja

Einschränkungen: Darf nicht leer sein.

'Methode'

Über dieses Attribut legen Sie die Methode des Requests fest, GET oder POST.

Variabel: Nein

Einschränkungen: Keine

'Parameters'

Hier können Sie die Parameter für den Request definieren. Die Paremeter werden bei der Ausführung kodiert Übertragung (URL-Kodierung). Näheres zur Arbeit mit der Tabelle finden Sie in Abschnitt 2.2.5.

Variabel: Ja

Einschränkungen: Keine

'Headers'

Mit dieser Tabelle können benutzerdefinierte Header spezifiziert werden. Dazu muss der Name des Header-Felds und dessen Wert angegeben werden. Näheres zur Arbeit mit der Tabelle finden Sie in Abschnitt 2.2.5.

Variabel: Yes

Einschränkungen: None

'Payload'

Für die Methoden POST, Put, DELETE bzw. HEAD, kann zusätzlich Payload in Form von XML, JSON oder Text angegeben werden. Dafür muss der Content-Type Header an das entsprechende Format angepasst werden. Die Informationen dazu sind hier zu finden: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Type.

Variabel: Yes

Einschränkungen: None

'Variable für den HTTP-Statuscode'

Der Name der Variable welcher der HTTP-Statuscode als Wert zugewiesen wird (vgl. Kapitel 7).

Variabel: Ja

Einschränkungen: Keine

'Variable für den Header der Antwort'

Der Name der Variable welcher die Header der Antwort als Wert zugewiesen werden (vgl. Kapitel 7).

Variabel: Ja

Einschränkungen: Keine

'Variable für den Antworttext'

Der Name der Variable welcher der Body des Servers (HTTP-Response) als Wert zugewiesen wird (vgl. Kapitel 7).

Variabel: Ja

Einschränkungen: Keine

'Lokale Variable'

Ist dieses Attribut nicht gesetzt, werden die Variablen in den globalen Definitionen gebunden. Andernfalls wird - sofern vorhanden - jeweils die oberste aktuelle Definition der Variablen überschrieben, sofern diese innerhalb des aktuellen 'Prozedur', 'Abhängigkeit' oder 'Testfall' Knotens liegt. Gibt es keine solche Definition, wird eine neue Definition im aktuellen 'Prozedur', 'Abhängigkeit' oder 'Testfall' Knoten angelegt, oder, falls kein solcher existiert, in den globalen Definitionen. Eine Erläuterung dieser Begriffe und weitere Details zu Variablen finden Sie in Kapitel 7.

Variabel: Nein

Einschränkungen: Keine

'Antwort des Servers in Protokoll schreiben'

Ist dieses Attribut gesetzt, wird zusätzlich zum Status-Code die Antwort des Servers (HTTP-Response) in das Protokoll geschrieben.

Variabel: Ja

Einschränkungen: Keine

'Wartezeit'

Zeit in Millisekunden, die maximal verstreichen darf, bis der HTTP Request erfolgreich durchgeführt wurde. Lassen Sie das Attribut leer wenn Sie unbegrenzt auf die Durchführung warten wollen.

Variabel: Ja

Einschränkungen: Darf nicht negativ sein.

'Fehlerstufe bei Zeitüberschreitung'

Dieses Attribut legt fest, was bei Überschreitung des Zeitlimits passiert. Ist der Wert "Exception", wird eine CheckFailedException geworfen. Andernfalls wird eine Meldung mit der entsprechenden Fehlerstufe in das Protokoll geschrieben.

Variabel: Nein

Einschränkungen: Keine

'QF-Test ID'

Die QF-Test ID ist für diesen Knoten zur Zeit ohne Bedeutung.

Variabel: Nein

Einschränkungen: Darf keines der Zeichen '\', '#', '$', '@', '&', oder '%' enthalten und nicht mit einem Unterstrich ('_') beginnen.

'Verzögerung vorher/nachher'

Mit diesen Parametern kann vor oder nach der Ausführung eine Verzögerung bewirkt werden. Sind sie nicht gesetzt, wird die Standardverzögerung aus den Optionen verwendet.

Variabel: Ja

Einschränkungen: Leer oder >0

'Bemerkung'

Hier können Sie einen beliebigen Kommentar eintragen.

Hinweis Für die ausführliche Dokumentation, insbesondere von 'Testfallsatz', 'Testfall' oder 'Prozedur' Knoten, ist dieses Textfeld womöglich nicht der geeignete Ort. Es gibt hervorragende Editoren, die wesentlich besser dafür geeignet sind. Mittels der Option Kommando für externen Editor kann ein externer Editor festgelegt werden, in dem nach Drücken von [Alt-Eingabe] oder Klicken des Edit row Buttons der Kommentar komfortabel bearbeitet werden kann.

Für einige Knoten können Sie ein spezielles Verhalten per Doctags konfigurieren, siehe Doctags.

Variabel: Ja

Einschränkungen: Keine

35.12.2
'Browser HTTP Request'

Web Dieser sehr spezielle Knoten bietet eine einfache Möglichkeit, einen GET oder POST Request direkt via HTTP/HTTPS an einen Webserver abzusetzen. Die Verwendung ist bei Lasttests oder Szenarien mit Verarbeitung von Massendaten (z.B. Ausfüllen von Formularen) sehr hilfreich, da beim Abspielen die Simulation von Nutzereingaben im SUT und die damit verbundene Abhängigkeit von den Ladezeiten des SUT entfallen. Die Verwendung von Requests stellt somit eine Ergänzung der in Kapitel 24 und Abschnitt 35.4 beschriebenen Funktionalität für Lasttests und datengetriebenes Testen dar.

Enthalten in: Alle Arten von Sequenzen.

Kinder: Keine

Ausführung: Der GET/POST Request wird via HTTP/HTTPS direkt vom Browser aus an die angegebene URL geschickt. Die Ergebnisse des Requests werden im Browser angezeigt.

Attribute:

Browser HTTP Request Attribute
Abbildung 35.73:  'Browser HTTP Request' Attribute
'Client'

Der Name unter dem der Java Prozess des SUT gestartet wurde, in dem der Request ausgeführt werden soll.

Variabel: Ja

Einschränkungen: Darf nicht leer sein.

'QF-Test ID der Komponente'

Die QF-Test ID der 'Webseite' in welcher der Request abgespielt werden soll.

Der Button öffnet einen Dialog, in dem Sie die Komponente direkt auswählen können. Diesen erreichen Sie auch mittels [Shift-Return] oder [Alt-Return], sofern sich der Fokus im Textfeld befindet. Alternativ können Sie den gewünschten Knoten mittels [Strg-C] bzw. »Bearbeiten«-»Kopieren« kopieren und seine QF-Test ID durch drücken von [Strg-V] in das Textfeld einfügen.

Dieses Attribut unterstützt ein spezielles Format, das es erlaubt, Komponenten in anderen Testsuiten zu referenzieren. Des weiteren können Unterelemente von Knoten direkt angegeben werden, ohne dass ein eigener Knoten dafür vorhanden sein muss. Näheres hierzu erfahren Sie in Abschnitt 19.1 und Abschnitt 6.3.

Variabel: Ja

Einschränkungen: Darf nicht leer sein

'URL'

Die URL, an die der Request gesendet werden soll, exklusive der Parameter. Als Protokoll sind sowohl HTTP als auch HTTPS zulässig.

Internationalisierte Domainnamen (IDN) werden in der URL ebenso wie Pfade beginnend mit 'file:///' nicht unterstützt.

Variabel: Ja

Einschränkungen: Darf nicht leer sein.

'Methode'

Über dieses Attribut legen Sie die Methode des Requests fest, GET oder POST.

Variabel: Nein

Einschränkungen: Keine

'Programm-Parameter'

Hier können Sie die Parameter für den Request definieren. Die Paremeter werden bei der Ausführung kodiert Übertragung (URL-Kodierung). Näheres zur Arbeit mit der Tabelle finden Sie in Abschnitt 2.2.5.

Variabel: Ja

Einschränkungen: Keine

'QF-Test ID'

Die QF-Test ID ist für diesen Knoten zur Zeit ohne Bedeutung.

Variabel: Nein

Einschränkungen: Darf keines der Zeichen '\', '#', '$', '@', '&', oder '%' enthalten und nicht mit einem Unterstrich ('_') beginnen.

'Verzögerung vorher/nachher'

Mit diesen Parametern kann vor oder nach der Ausführung eine Verzögerung bewirkt werden. Sind sie nicht gesetzt, wird die Standardverzögerung aus den Optionen verwendet.

Variabel: Ja

Einschränkungen: Leer oder >0

'Bemerkung'

Hier können Sie einen beliebigen Kommentar eintragen.

Hinweis Für die ausführliche Dokumentation, insbesondere von 'Testfallsatz', 'Testfall' oder 'Prozedur' Knoten, ist dieses Textfeld womöglich nicht der geeignete Ort. Es gibt hervorragende Editoren, die wesentlich besser dafür geeignet sind. Mittels der Option Kommando für externen Editor kann ein externer Editor festgelegt werden, in dem nach Drücken von [Alt-Eingabe] oder Klicken des Edit row Buttons der Kommentar komfortabel bearbeitet werden kann.

Für einige Knoten können Sie ein spezielles Verhalten per Doctags konfigurieren, siehe Doctags.

Variabel: Ja

Einschränkungen: Keine