如何在Postman

时间:2019-10-18 20:12:52

标签: arrays api testing automated-tests postman

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

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

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

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

我想将所有请求中的所有这些clientid存储到一个环境Client数组变量中,因此我编写了以下请求前脚本 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);
}

以上内容正在抛出 TypeError | ClientArray.push不是函数。

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

1 个答案:

答案 0 :(得分:0)

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

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(',');