【问题标题】:How to pass a string environment variable in postman/newman如何在 postman/newman 中传递字符串环境变量
【发布时间】:2015-12-30 10:10:48
【问题描述】:

我在邮递员中有 2 个连接请求,第一个执行 GET 以列出所有数据,然后根据返回的值设置环境变量。 第二个请求尝试使用环境变量作为字段值进行 POST。

请求 1

GET /customers?$select=reference&$orderby=reference

有测试:

tests["Status code is 200"] = responseCode.code === 200;

var data = JSON.parse(responseBody);
var ref = 0;

for (i = 0; i < data.length-1; i++) { 
    if (data[i].reference == ref.toString()){
        ref++;
        postman.setEnvironmentVariable("reference", ref);
    }
}

此时环境变量reference的值为5

请求 2

POST /customers

与身体:

{
    "reference": "{{reference}}",
    "name": "Name"
}

这通过 Postman 的 GUI 可以正常工作,但是从命令行 Newman 运行时,当请求到达 API 时,reference 的值是 {{reference}},而不是预期的 5

我已经执行了相同类型的替换,环境变量直接从返回的数据中设置

postman.setEnvironmentVariable('reference', data.reference);

这可以在 Postman 或 Newman 中使用。

有人可以帮助解释为什么在这样的脚本块中设置变量会失败吗?

【问题讨论】:

    标签: postman


    【解决方案1】:

    问题在于环境变量的设置,它没有被设置。 this 的设置应该在 for 循环之外:

    tests["Status code is 200"] = responseCode.code === 200;
    
    var data = JSON.parse(responseBody);
    var ref = 0;
    
    for (i = 0; i < data.length-1; i++) { 
        if (data[i].reference == ref.toString()){
            ref++;
        }
    }
    
    postman.setEnvironmentVariable("reference", ref); // <--- This
    

    【讨论】:

      猜你喜欢
      • 2020-06-08
      • 2019-01-23
      • 2016-09-24
      • 2019-10-08
      • 2017-10-10
      • 1970-01-01
      • 2021-12-02
      • 1970-01-01
      • 2017-02-17
      相关资源
      最近更新 更多