HTTP-Requests

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

'Server-HTTP-Request'

Web Dieser sehr spezielle Knoten bietet eine einfache Möglichkeit, einen Web-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 31 und Abschnitt 40.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 Exception geworfen. Die Fehlerstufe kann mit dem Attribut 'Fehlerstufe bei HTTP-Statuscode >= 400' verändert werden. 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 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 Exception geworfen. Dieses Verhalten kann über das Attribut 'Fehlerstufe bei HTTP-Statuscode >= 400' beeinflusst werden.

Attribute:

Server-HTTP-Request Attribute
Abbildung 40.85:  '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, POST, OPTIONS, PUT, DELETE, HEAD oder TRACE.

Variabel: Ja

Einschränkungen: Keine

'Parameters'

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

Variabel: Ja

Einschränkungen: Keine

'Header'

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: Ja

Einschränkungen: Keine

'Zusätzliche Header'

Alternativ oder in Ergänzung zur Headers-Tabelle, können hier weitere Header als Text definiert werden. Damit ist es einfacher, Variablen zu nutzen und ggf. auch Header wegzulassen. Anzugeben ist jeweils ein Header pro Zeile im Format Header: Wert.

Variabel: Ja

Einschränkungen: Keine

'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: Ja

Einschränkungen: Keine

'Variable für den HTTP-Statuscode'

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

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 6).

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 6).

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, im obersten Knoten auf dem Variablen-Stapel mit Fallback auf die globalen Definitionen. Eine Erläuterung dieser Begriffe und weitere Details zu Variablen finden Sie in Kapitel 6.

Über die Option Attribut 'Lokale Variable' standardmäßig aktivieren kann der Wert voreingestellt werden.

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

'Antwort in Datei speichern'

Hier kann eine Datei angegeben werden, in welche die Antwort des Servers geschrieben wird. Dadurch können Dateien heruntergeladen werden.

Variabel: Ja

Einschränkungen: QF-Test muss in die Datei schreiben können.

'Fehlerstufe bei HTTP-Statuscode >= 400'

Hier kann die Fehlerstufe von HTTP-Statuscodes, die größer/gleich 400 sind, eingestellt werden.

Variabel: Nein

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 Externer Editor Buttons der Kommentar komfortabel bearbeitet werden kann.

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

Falls bei 'Komponenten' Knoten in dem Bemerkungsfeld eine Eintragung gemacht wurde, wird der Knoten bei der Suche bzw. dem Löschen von ungenutzten Komponenten übersprungen.

Variabel: Ja

Einschränkungen: Keine

'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 31 und Abschnitt 40.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 40.86:  '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 "Komponente auswählen" Button [Komponente auswählen] öffnet einen Dialog, in dem Sie die Komponente (siehe Kapitel 5) 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 (siehe Abschnitt 24.1). Des weiteren können Unterelemente von Knoten direkt angegeben werden, ohne dass ein eigener Knoten dafür vorhanden sein muss (siehe Abschnitt 5.9). Bei der Verwendung von SmartIDs können Sie ein GUI-Element direkt über seine Wiedererkennungsmerkmale adressieren. Weitere Informationen hierzu finden Sie in SmartID und 'Komponente'-Knoten versus SmartID.

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: Ja

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 Externer Editor Buttons der Kommentar komfortabel bearbeitet werden kann.

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

Falls bei 'Komponenten' Knoten in dem Bemerkungsfeld eine Eintragung gemacht wurde, wird der Knoten bei der Suche bzw. dem Löschen von ungenutzten Komponenten übersprungen.

Variabel: Ja

Einschränkungen: Keine