我从响应中收集数据并将其推送到“测试”中的数组中。 console.log
显示我收到了数组:
然后我将它保存到环境变量中以供下次调用使用。但是请求中的值是一个字符串,所以只有第一个值在运行。
如何设置普通数组?
我收集数据的回应:
{
"sent": 0,
"remaining": 1000000,
"gifts": [
{
"id": 43468,
"amount": 50000,
"can_gift_back": true
},
{
"id": 43469,
"amount": 50000,
"can_gift_back": true
}
]
}
我在“测试”选项卡中的代码:
let jsonData = pm.response.json();
let gifts = jsonData.gifts;
//calculate array length
function objectLength(obj) {
var result = 0;
for(var prop in obj) {
if (obj.hasOwnProperty(prop)) {
result++;
}
}
return result;
}
let arrayLength = objectLength(gifts);
//push response data to the array
var giftsArray = [];
for (var i = 0; i < arrayLength; i++) {
var giftsIDs = gifts[i].id;
giftsArray.push(giftsIDs);
}
pm.environment.set("giftsToCollect", giftsArray);
更新:
- 在以不同方式使用答案中的代码后,我收到了此类问题。
点1描述了使用stringify
时的行为方式
最佳答案
您可以使用 Lodash 捕获数组中的所有 id
值,这是一个可以在 Postman 应用程序中使用的外部模块。
在此之后将 array
保存为变量,与您已经这样做的相同,但我在数组值周围添加了 JSON.stringify()
或它将把它保存为一个字符串。
let giftsArray = []
_.each(pm.response.json().gifts, (item) => {
giftsArray.push(item.id)
})
pm.environment.set('giftsToCollect', JSON.stringify(giftsArray))
然后您应该能够像这样引用环境变量:
gift_ids:{{giftsToCollect}}
我在本地模拟了请求数据,只是为了向您展示如何从数据中捕获值。
关于arrays - 来自变量的数组在 Postman 中像字符串一样发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55006532/