使用Postman时,是否可以像变量一样在for循环内增加全局变量名称

时间:2019-07-09 12:09:54

标签: javascript postman-testcase

我正在尝试解析响应数据并获取“ id”的值。由于我期望同一响应有多个值,因此将其放入数组中。在for循环中,我将索引设置为i的数组递增。这些值中的每一个我都需要将其传递给全局变量,例如var_id0,var_id1 ... var_idn。

可以在for循环内对全局名称“ var_id”的数字进行递增吗?

我查看了多个示例,但是在设置全局变量时是否可以执行此操作,没有一个显示给我。

var index_id= [];
var jsonData = JSON.parse(responseBody);
for (var i = 0; i < jsonData.list.length; i++) {  
    var counter = jsonData.list[i];
    index_id[i] = counter.id;
    pm.globals.set("var_id"[i], index_id[i]) <<-- How can this be achieved.
    //pm.globals.set("variable name", "variable value") --> Actual syntax.
}

我的期望是直到到达for循环的末尾,对于每个循环,全局变量名将加1并设置相应的值。 例如:

var_id1 =“ 700” var_id2 =“ 800” ...

4 个答案:

答案 0 :(得分:2)

"var_id"[i]表示"var_id" 中查找第i个索引,对于要求值到位置i处字符的字符串,因此"var_id"[0]将是{ {1}}。相反,您想通过将{em> "v"附加到i上来构建字符串,这可以通过"var_id"完成。

答案 1 :(得分:1)

更改

pm.globals.set("var_id"[i], index_id[i])

收件人

pm.globals.set(`var_id${i}`, index_id[i])

答案 2 :(得分:1)

为什么需要所有这些全局变量?定义一个全局数组并将值推入其中。然后按索引访问它们。几乎与您想要的语法相同。

答案 3 :(得分:-3)

您可以使用eval功能。

var index_id= [];
var jsonData = JSON.parse(responseBody);
for (var i = 0; i < jsonData.list.length; i++) {  
    var counter = jsonData.list[i];
    index_id[i] = counter.id;
    eval("var_id"+i+"="+index_id[i]);
    //pm.globals.set("var_id"[i], index_id[i]) <<-- How can this be achieved.
    //pm.globals.set("variable name", "variable value") --> Actual syntax.
}