50.6 WebAPI Skripting-API
QF-Test stellt eine Skripting-API zum Senden von HTTP(S)-Anfragen und zum Validieren der Antworten bereit, die während der Ausführung eines -Knotens empfangen werden.
Skripte innerhalb eines -Knotens arbeiten typischerweise mit einem
WebRequest-Objekt, das aus dem aktuell ausgeführten initialisiert wird. Dieses
Objekt wird während der Ausführung der -Knoten automatisch als qw.request
gebunden, sodass Skripte Parameter ändern können, bevor die Anfrage gesendet wird.
Nach Empfang der Antwort wird diese Skripten innerhalb eines Post-Request-Handler-Knotens sind, in Form
eines WebResponse-Objekts zur Verfügung gestellt, das automatisch als qw.response
gebunden wird.
Die Implementierung basiert auf dem Java-Paket
java.net.http und mehrere seiner Schnittstellen sind, wie unten beschrieben, direkt verfügbar.
Der Einfachheit halber wurden WebRequest und WebResponse um Standard-Getter und
-Setter ergänzt, die vereinfachte Skriptausdrücke wie qw.request.uri oder
qw.response.body ermöglichen.
HTTP-Header sind ebenfalls ein Sonderfall. Oft können sie wie eine einfache Schlüssel:Wert-Map von
Strings behandelt werden, aber die HTTP-Spezifikation legt fest, dass bei den Schlüsseln die Groß- und
Kleinschreibung keine Rolle spielt und dass es mehrere Werte pro Schlüssel geben kann. Die
HttpHeaders-Klasse implementiert diese Funktionalität. Auch hier bietet QF-Test Zugriff auf diese
Implementierung und stellt zusätzlich Komfortmethoden für Skripte, die unter anderem direkten Zugriff auf
einwertige HTTP-Header bieten.
10.0+50.6.1 QF-Test WebAPI (qw)
Über qw.request und qw.response erlaubt dieses Modul Zugriff auf die Anfrage und
Antwort, die bei der letzten Ausführung eines Web-Request-Knotens gesendet und empfangen wurden. In
erster Linie sind sie zur Verwendung in Pre-Request-Handler und Post-Request-Handler-Knoten gedacht.
Sie bleiben aber darüber hinaus gültig, um die Analyse in Skript-Konsolen zu ermöglichen sowie auf die Werte
der Antwort in Knoten zuzugreifen, die nach dem Web-Request ausgeführt werden.
Außerdem enthält das qw-Modul folgende Hilfsmethoden:
10.0+50.6.2 WebRequest-Klasse (qw.request)
Die Klasse WebRequest erweitert
HttpRequest und implementiert gleichzeitig ihren eigenen
HttpRequest.Builder, sodass die Methoden der beiden Klassen direkt verfügbar sind. Diese
Methoden werden hier nicht dokumentiert, Sie finden sie in der oben verlinkten offiziellen Dokumentation.
Für einen vereinfachten Skriptzugriff stellen die QF-Test Klassen alternative Getter- und Setter-Methoden bereit. Sie sind ihren Gegenstücken weitgehend ähnlich, mit zwei wichtigen Ausnahmen:
-
Die Methode
getHeaders()liefert keinHttpHeaders-Objekt wieheaders()zurück, sondern eine vereinfachteMapmit von Groß- und Kleinschreibung unabhängigen Schlüsseln und jeweils genau einem Wert, dem letzten, der für den jeweiligen Schlüssel im ursprünglichenHttpHeaders-Objekt definiert wurde. -
Die
get...()-Methoden liefern niemals einenOptional-Wert zurück, sondern den enthaltenen Wert oder einen Standardwert - üblicherweisenull- falls dasOptionalleer ist.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
10.0+50.6.3 WebResponse-API (qw.response)
Das qw.response-Objekt wird in allen Skriptsprachen während der Ausführung einer
gebunden. Es kann zum Lesen und Validieren von Antwortdaten verwendet werden.
Dieses Objekt bleibt gültig, bis ein weiterer ausgeführt wird, was bedeutet, dass es auch in
Skripten außerhalb der WebAPI-Knoten verwendet werden kann.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||