Wie lese ich Umgebungsvariablen in Postman-Tests?

70

Ich verwende die gepackte App-Version von Postman, um Tests für meine Rest-API zu schreiben. Ich versuche, den Status zwischen aufeinanderfolgenden Tests zu verwalten. Um dies zu erleichtern, verfügt das Postman-Objekt, das der Laufzeit des Javascript-Tests ausgesetzt ist, über Methoden zum Festlegen von Variablen, jedoch keine zum Lesen.

postman.setEnvironmentVariable("key", value );

Jetzt kann ich diesen Wert beim nächsten Aufruf über die Struktur {{key}} lesen, die Werte aus der aktuellen Umgebung ansaugt. ABER das funktioniert in den Tests nicht; Es funktioniert nur im Anforderungsaufbau.

Also, gibt es weg, um dieses Zeug aus den Tests zu lesen?

Tschad
quelle

Antworten:

93

Entsprechend den hier beschriebenen Dokumenten können Sie verwenden

environment["foo"] OR environment.foo
globals["bar"] OR globals.bar

um auf sie zuzugreifen.

dh;

postman.setEnvironmentVariable("foo", "bar");

tests["environment var foo = bar"] = environment.foo === "bar";

postman.setGlobalVariable("foobar", "1");

tests["global var foobar = true"] = globals.foobar == true;

postman.setGlobalVariable("bar", "0");

tests["global var bar = false"] = globals.bar == false;
Gooddadmike
quelle
4
Eine Sache, die mir aufgefallen ist, ist, dass ich beim Festlegen der globalen Variable diese als int festgelegt habe. Als ich es zurücklas, war es eine Zeichenfolge. Also musste ich es analysieren: tests ["stress"] = data.Rating.RatingScoreList [1] .Value === parseInt (globals.stress);
Duncan
9
Aus den Dokumenten hier : "Warnung - Umgebung und globale Variablen werden immer als Zeichenfolgen gespeichert. Wenn Sie Objekte / Arrays speichern, müssen Sie sie vor dem Speichern mit JSON.stringify () und beim Abrufen mit JSON.parse () speichern. ""
GrayedFox
Beachten Sie auch, dass Globals nicht unterstützt wird, wenn Sie Postman-Monitore verwenden möchten , während dies bei Umgebungsvariablen der Fall ist .
Jim Aho
12

Postman hat ihre Sandbox aktualisiert und eine pm.*API hinzugefügt . Obwohl die ältere Syntax zum Lesen von Variablen in den Testskripten laut den folgenden Dokumenten immer noch funktioniert :

Sobald eine Variable festgelegt wurde, verwenden Sie die pm.variables.get() Verfahren , oder alternativ die Verwendung pm.environment.get()oder pm.globals.get() auf die Variable Fetch - Methode in Abhängigkeit von dem entsprechenden Bereich. Die Methode benötigt den Variablennamen als Parameter, um den in einem Skript gespeicherten Wert abzurufen.

J. Lin
quelle