【问题标题】:How to store array values in an environment variable in Postman如何将数组值存储在 Postman 的环境变量中
【发布时间】:2020-02-15 20:21:26
【问题描述】:

我正在使用邮递员来自动化 api。

现在我正在使用以下请求,可以说:-

{
  "customerId": "{{currentClientId}}"
}

其中 clientid 是一个动态变量,其值被动态替换为 1 、 2 、 3,4 等等。 我在这个例子中使用 setNextRequest 调用多次调用这个请求,比如说 10。这是使用计数器变量完成的。我将之前请求中的计数器初始化为 0,并使用值为 10 的 for 循环调用请求 10 次。正文中没有响应,只是成功的 http 代码 204。

我想将请求中的所有这些客户端 ID 存储到环境客户端数组变量中,因此我编写了以下 预请求脚本t:-

counter = pm.environment.get("counter");
ClientArray = pm.environment.get("ClientArray");
ClientArray.push(pm.environment.get("currentClientId"));
pm.environment.set("ClientArray",ClientArray);

测试脚本中,写了如下代码:-

counter = pm.environment.get("counter");

if(counter<=10) {
    console.log("hi");
    postman.setNextRequest("Request");
    counter++;
    pm.environment.set("counter",counter);
    console.log("Counter",counter);
}

上面的scipts正在抛出 类型错误 | ClientArray.push 不是函数。

有人可以建议如何实现这一目标。

【问题讨论】:

  • 你在跑步者中使用这个吗? setNextRequest 命令如何知道有 10 个不同的 id?这 all 是您在预请求中拥有的代码吗?实际的响应体是什么样的?如果您希望有人帮助您解决这个问题,您需要提供更多详细信息。
  • 添加了更多细节,希望这能提供足够的信息。

标签: arrays api testing automated-tests postman


【解决方案1】:

当您像正在做的那样从环境变量中检索值时:

ClientArray = pm.environment.get("ClientArray");

你没有得到一个数组,你得到一个字符串,这就是你得到那个错误的原因。您需要将变量视为字符串,附加currentClientId 就像您为计数器所做的那样。比如:

var currentClientIds = pm.environment.get("ClientArray");
currentClientIds = currentClientIds + "," + currentClientId

当你完成追加后,即退出循环,只需将字符串转换为数组:

var currentClientIds = pm.environment.get("ClientArray");
var idsArr = curentClientIds.split(',');

【讨论】:

    猜你喜欢
    • 2020-02-09
    • 2015-10-26
    • 2021-11-04
    • 2017-06-17
    • 1970-01-01
    • 1970-01-01
    • 2018-11-14
    • 1970-01-01
    • 2014-04-23
    相关资源
    最近更新 更多