我正在使用邮递员来自动执行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不是函数。
有人可以建议如何实现这一目标。
答案 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(',');