advanced scripting complex testing workflows postman
Weitere Informationen zu Postman Advanced Scripting für komplexe Testworkflows:
In diesem Tutorial werden einige grundlegende Beispiele für die Verwendung von Advanced Scripting mit Postman vorgestellt, mit denen wir komplexe Testworkflows ausführen können.
Wir werden Beispiele wie das Übergeben von Daten von einer Anforderung an eine andere, das Verketten von Anforderungen, d. H. Das Steuern der Ausführungsreihenfolge der Anforderungen innerhalb der Postman-Sammlung usw. diskutieren.
Welche Schicht des OSI-Modells befasst sich mit der Datenverschlüsselung?
=> Lesen Sie die Easy Postman Training Series durch.
Was du lernen wirst:
- Übergeben von Daten zwischen Anfragen im Postboten
- Verkettung im Postboten anfordern
- Erweiterte Workflow-Verkettung mit Postboten
- Wichtige Tipps
- Fazit
- Literatur-Empfehlungen
Übergeben von Daten zwischen Anfragen im Postboten
Das Übergeben von Daten zwischen Anforderungen ist eine Erweiterung der Verwendung verschiedener Arten von Postman-Variablen. Es ist nicht ungewöhnlich, dass eine API-Anfrage von Daten aus der Antwort der vorherigen Anfrage abhängt.
Um solche Funktionen mit Postman zu erstellen, können wir einfach Postman-Variablen verwenden, um den Wert abhängig von der Antwort festzulegen, die von den vorhergehenden oder vorherigen Anforderungen erhalten wurde.
Hier ist ein Video-Tutorial:
Schauen wir uns ein Beispiel an, um dies zu veranschaulichen.
Wir werden dieselbe API verwenden https://reqres.in mit seinen 2 Endpunkten, d. h. Benutzer registrieren und Benutzerdetails abrufen.
Wir werden den Wert der Benutzer-ID verwenden, die vom registrierenden Endpunkt zurückgegeben wird, und ihn verwenden, um die Benutzerdetailmethode abzurufen. Dies wird erreicht, indem der userId-Wert in einer Umgebungsvariablen gespeichert und diese Umgebungsvariable in der nachfolgenden Anforderung verwendet wird.
Bitte beachten Sie, dass alle diese Skripte Teil der Registerkarte 'Tests' der Postman Request Builder-Konsole sind.
Mal sehen, wie das Skript aussehen wird:
# 1) Für den Endpunkt Benutzer registrieren sieht die Antwort dieser API wie folgt aus.
{ 'id': 4, 'token': 'QpwL5tke4Pnpja7X4' }
Um nun die GET-Anforderung unter Verwendung der Benutzer-ID aus der Antwort auszuführen, müssen wir den ID-Wert aus der obigen Antwort abrufen. Wir werden das folgende Skript verwenden, um den Wert der ID aus diesem JSON in einer Umgebungsvariablen mit dem Namen zu speichern Benutzeridentifikation.
var jsonData = pm.response.json(); pm.environment.set('userId',jsonData.id)
Mit dem obigen Skript wird der Wert der ID jetzt in der Umgebungsvariablen userId gespeichert und kann beim Ausführen des GET-Benutzeranforderungsendpunkts verwendet werden.
#zwei) Somit sieht die GET-Benutzeranforderung wie unten gezeigt aus.
https://reqres.in/api/users/{(userId}}
Sobald die erste Anforderung ausgeführt wurde, ruft sie den Wert der Benutzer-ID aus der Antwort ab und aktualisiert den Wert der Umgebungsvariablen, sodass er in den anderen Anforderungen verwendet werden kann.
Verkettung im Postboten anfordern
Versuchen wir zunächst, einen grundlegenden Anwendungsfall der Anforderungsverkettung zu verstehen, und gehen dann weiter darauf ein, wie wir die Anforderungsverkettung mit Postman erreichen können.
Stellen Sie sich ein Szenario des Anmeldeflusses einer E-Commerce-Site vor und überprüfen Sie den angemeldeten Benutzer. Damit sich ein Benutzer anmelden kann, muss er zuerst bei der Site registriert sein und erst dann kann er sich anmelden. Dies ist die Reihenfolge, in der die tatsächliche Site der mobilen App die API-Aufrufe ausführt.
Betrachten Sie es aus der Perspektive eines Integrationstests. Für einen API-Test müssen wir zunächst:
- Rufen Sie den Registrierungsendpunkt der API auf, damit sich der Benutzer erfolgreich registrieren kann.
- Rufen Sie dann den Anmeldeendpunkt auf und überprüfen Sie die Details des angemeldeten Benutzers.
Mit Postman ist die Steuerung der Reihenfolge der Anforderungsausführung nicht einfach. Die Standardausführungsreihenfolge ist von oben nach unten, d. H. Die Reihenfolge, in der Anforderungen in der Postman-Sammlung deklariert oder erstellt werden.
Die Anforderungsverkettung oder die Reihenfolge der Anforderungsausführung wird mithilfe des folgenden Skripts geändert:
postman.setNextRequest({{RequestName}});
Hierbei ist zu beachten, dass dieses Anforderungsverkettungsskript zum Voranforderungs- oder Nachanforderungsskript (oder zur Registerkarte 'Tests' im Postman-Anforderungs-Generator) hinzugefügt werden muss, das den Workflow auslöst, sobald die auszuführende Anforderung abgeschlossen ist.
Hier ist {{RequestName}} der tatsächliche Anforderungsname, der in der Postman-Auflistung konfiguriert oder festgelegt ist.
Konfigurieren Sie eine Postman-Sammlung mit 4 verschiedenen Anforderungen, um das Konzept der Anforderungsverkettung zu veranschaulichen. Erstellen Sie eine neue Sammlung mit 4 Anforderungen (Wir verwenden dieselbe API https://reqres.in um dies zu veranschaulichen).
Die 4 Anfragen in der Sammlung lauten wie folgt:
# 1) POST Anfrage zur Registrierung des Benutzers ( https://reqres.in/api/register ) mit Beispiel-JSON-Body mit Feldern mit E-Mail und Passwort wie unten.
{ 'email': 'eve.holt@reqres.in', 'password': 'pistol' }
#zwei) POST-Anfrage mit Login-Endpunkt ( https://reqres.in/api/login ) mit dem gleichen Anfragetext wie oben.
konvertiere youtube in mp4 kostenlos online
#3) GET-Anfrage mit Benutzer-ID 4.
Der Workflow, den wir erreichen wollen, ist:
Registrieren (POST) -> Benutzerdaten (GET) -> Anmelden (POST)
Unabhängig davon, wie diese Anforderungen konfiguriert sind, erstellen wir einen Workflow, damit sie in dieser Reihenfolge ausgeführt werden.
Bitte beachten Sie, dass die Anforderungen als Benutzer registrieren, Benutzer abrufen und Benutzer anmelden bezeichnet werden. Es ist wichtig, dass diese Anforderungsnamen genau und korrekt im Skript angegeben sind, da sonst der Workflow hängen bleibt.
Mal sehen, wie die Skripte jetzt aussehen.
# 1) POST-Anfrage zur Registrierung.
postman.setNextRequest('Login User');
#zwei) POST-Anfrage zum Anmelden.
postman.setNextRequest('Get User');
#3) GET-Anfrage, um Benutzerdetails zu erhalten. Hier ist es wichtig, dass nach dieser Anfrage nichts passiert. Wenn wir hier kein Workflow-Skript hinzufügen, wird die Postman-Sammlung so konzipiert, dass die nächste Anforderung in der logischen oder Standardreihenfolge fortgesetzt wird.
Angenommen, die ursprüngliche Reihenfolge der Anforderungen in der Sammlung lautet Registrieren, Benutzer abrufen und Anmeldung und unser Workflow ist bei Benutzer abrufen Da das Steuerelement nicht weiß, welche Anforderung als Nächstes ausgeführt werden soll, wird es zur nächsten logischen Anforderung weitergeleitet Anmeldung und wird letztendlich zu einer Endlosschleife führen.
Um eine solche Situation zu verhindern, ist es hilfreich, den Workflow mit folgenden Optionen zu beenden:
postman.setNextRequest(null)
Immer wenn das obige Skript während einer Sammlungsausführung auftritt, wird die Workflow-Ausführung gestoppt und der Sammlungsläufer wird beendet.
In den Fällen, in denen Zirkelverweise auf die nächste Anforderung vorhanden sind, bleibt der Sammlungsläufer in einer Endlosschleife stecken, wodurch früher oder später ein Speicherverlust verursacht wird.
Bitte beachten Sie, dass Sie zum Ausführen des Workflows die erste oder die Startanforderung manuell ausführen müssen. Geben Sie an, dass sie dem in den Skripts nach der Anforderung definierten Workflow folgt.
Mit anderen Worten, die erste Anforderung, die als Teil des Workflows ausgeführt werden muss, sollte auch die erste Anforderung in der Sammlung oder im Sammlungsordner sein, damit die Ausführung des Workflows mit der ersten Anforderung beginnt, die auch die erste Anforderung des Workflows ist .
Erweiterte Workflow-Verkettung mit Postboten
Das obige Beispiel, das wir besprochen haben, ist eher ein linearer Workflow, bei dem wir nur den Workflow zwischen einer Reihe von Anforderungen in derselben Sammlung konfiguriert haben. Dieselbe Technik kann auch zum mehrmaligen Durchlaufen einer Anforderung basierend auf einigen Antwortwerten oder Umgebungsvariablen verwendet werden.
Betrachten Sie den Integrationstest für eine Warenkorb-App, bei dem Sie ein Szenario testen müssen, in dem ein Benutzer nach einem Produkt sucht und es dem Warenkorb hinzufügt und denselben Vorgang fünfmal ausführen muss, dh bis der Warenkorb insgesamt 5 Artikel enthält Endlich zur Kasse.
Wenn Sie also einen linearen Ablauf für diese Art von Test schreiben würden, hätten Sie einzelne Anfragen in der Sammlung wiederholt, und im Wesentlichen hätte die Sammlung 5 Anfragen zum Suchen eines Artikels und 5 Anfragen zum Hinzufügen von Produkten zum Warenkorb und 1 Anfrage zur Kasse.
Mit dieser Workflow-Funktionalität können wir vermeiden, dass dieselben Anforderungen in der Sammlung wiederholt werden, und die Workflows verwenden, um zwischen den Anforderungen zu wechseln.
Sehen wir uns eine Ablaufsequenz für ein solches Szenario an (diese kann dann mithilfe des Postman-Workflows zusammen mit einer Kombination von Umgebungsvariablen verwendet / erstellt werden).
Es gibt auch ein interessantes Beispiel für die Verwendung des Postman-Workflows zum Erstellen einer Spotify-Wiedergabeliste. Verweisen Hier für mehr Informationen.
Wichtige Tipps
Im Folgenden finden Sie einige wichtige Tipps, die Sie beim Erstellen von Workflows beachten sollten.
- Wenn beim Ausführen einer Sammlung für wenige Anforderungen postment.setNextRequest nicht festgelegt ist, wird die Ausführung in der Standardreihenfolge der Sammlung fortgesetzt. Daher wird allgemein empfohlen, Postman.setNextRequest entweder in allen Anforderungen oder in keiner von ihnen zu verwenden.
- Wenn bei der Ausführung mit Sammlungen Ordner in einer Sammlung vorhanden sind, kann Postman.setNextRequest nur für Anforderungen verwendet werden, die zu demselben Ordner gehören, d. H. Die Anforderungsauswahl kann nicht über den aktuellen Ordner hinausgehen.
- Die Postman.setNextRequest ist die letzte Anweisung, die im Post-Request- oder Pre-Request-Skript ausgeführt wird, unabhängig davon, wo und in welcher Reihenfolge sie angegeben ist.
Bei mehreren Werten, die für setNextRequest gefunden wurden, ist der im letzten erwähnte Wert wirksam.
Fazit
In diesem Lernprogramm wurden einige erweiterte Skriptthemen behandelt, z. B. das Kombinieren von Umgebungsvariablen und lokalen Variablen, um Daten zwischen verschiedenen Anforderungen im Postman zu übergeben, und wie wir die Ausführungsreihenfolge der Anforderungen mithilfe der Postman-Anforderungsverkettung steuern können, die erweiterte Funktionen wie Schleifen und Verzweigen ermöglicht.
Es ist eine coole Funktion, das Verhalten einer Anwendung in der Art und Weise nachzuahmen, wie sie mit verschiedenen APIs interagieren würde, und es ist hilfreich, End-to-End-Workflows mithilfe von Integrationstests mit API-Endpunkten zu schreiben.
=> Lesen Sie hier den Perfect Postman Training Guide.
Literatur-Empfehlungen
- Beste Software-Test-Tools 2021 (QA Test Automation Tools)
- Testen von Primer eBook Download
- POSTMAN Tutorial: API-Tests mit POSTMAN
- Testen der Webdienstleistung mit LoadRunner VuGen Scripting
- Wie verwende ich Postman zum Testen verschiedener API-Formate?
- Lasttests mit HP LoadRunner-Tutorials
- Unterschied zwischen Desktop-, Client Server-Tests und Web-Tests
- Sind Sie ein neuer oder fortgeschrittener Tester? Finden Sie aus diesem Kartenspiel