如何在Postman测试中读取环境变量?


70

我正在使用Postman的打包应用程序版本针对我的Rest API编写测试。我正在尝试管理连续测试之间的状态。为方便起见,暴露给Javascript测试运行时的Postman对象具有设置变量的方法,但没有用于读取变量的方法。

postman.setEnvironmentVariable("key", value );

现在,我可以通过{{key}}结构在下一个调用中读取该值,该结构从当前环境中吸收值。但是,这在测试中不起作用;它仅在请求构建中起作用。

因此,是否有地方可以从测试中阅读这些内容?

Answers:


93

根据这里的文档您可以使用

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

访问它们。

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;

4
我注意到的一件事是,当我设置全局变量时,将其设置为int。当我读回它是一个字符串。所以我需要解析它:tests [“ stress”] = data.Rating.RatingScoreList [1] .Value === parseInt(globals.stress);
邓肯

9
这里的文档:“警告-环境和全局变量将始终存储为字符串。如果要存储对象/数组,请确保在存储之前先对其进行JSON.stringify(),并在检索时对其进行JSON.parse()。 ”
GrayedFox

另请注意,如果您打算使用邮递员监视器,则不支持全局变量,而环境变量则受支持。
Jim Aho

12

邮递员更新了他们的沙箱并添加了pm.*API。根据docs,虽然用于读取测试脚本中变量的旧语法仍然可以使用:

设置变量后,请使用pm.variables.get()方法,pm.environment.get()或者pm.globals.get() 根据适当的范围使用or方法来获取变量。该方法需要变量名作为参数来检索脚本中的存储值。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.