【问题标题】:How do I read environment variables in Postman tests?如何在 Postman 测试中读取环境变量?
【发布时间】:2014-02-20 12:21:46
【问题描述】:

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

postman.setEnvironmentVariable("key", value );

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

那么,是否可以从测试中读取这些内容?

【问题讨论】:

    标签: rest testing postman


    【解决方案1】:

    根据文档here,您可以使用

    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;
    

    【讨论】:

    • 我注意到的一件事是,当我设置全局变量时,我将其设置为 int;当我读回来时,它是一个字符串。所以我需要解析它:tests["stress"] = data.Rating.RatingScoreList[1].Value === parseInt(globals.stress);
    • 来自文档here:“警告 - 环境和全局变量将始终存储为字符串。如果您要存储对象/数组,请务必在存储之前对其进行 JSON.stringify(),和 JSON.parse() 检索它们。”
    • 另请注意,如果您打算使用postman monitors,则不支持全局变量,而环境变量则支持。
    【解决方案2】:

    Postman 更新了他们的沙箱并添加了 pm.* API。尽管在测试脚本中读取变量的旧语法仍然有效,但根据docs:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-17
      • 2020-09-18
      • 2017-11-03
      • 2021-06-15
      • 2018-11-14
      • 1970-01-01
      • 2015-05-18
      • 1970-01-01
      相关资源
      最近更新 更多