【发布时间】:2018-06-04 16:23:29
【问题描述】:
我正在使用 Postman 遍历大约 40 对项目的 json。然后我需要创建该数组并为数组中的每个元素运行 API 调用以返回一组结果。使用此处的代码,我只能提取数组中的最后一个元素。我试图将 postman.setNextRequest 放在 for 循环中,但后来我发现无论它在哪里,它总是最后执行。
tests["Status code is 200 (that's good!)"] = (responseCode.code === 200);
if (responseCode.code === 200) {
var jsonData = pm.response.json();
var json = [];
postman.setEnvironmentVariable("json", jsonData)
postman.setNextRequest('GetAdmins');
for (var key in jsonData ) {
if (jsonData.hasOwnProperty(key)) {
postman.setEnvironmentVariable("organizationId", jsonData[key].id)
postman.setEnvironmentVariable("orgname", jsonData[key].name)
tests[jsonData[key].name + " " + jsonData[key].id] = !!jsonData[key].name;
}
}
}
else {
postman.setNextRequest(null);
}
GetAdmins 是另一个在调用中使用 {{organizationId}} 的 GET。
我想我正在寻找的是;在 json 中的每个元素上运行另一个 API 调用的最佳方法是什么?
提前致谢!
编辑:添加 JSON 输出
[
{
"id": XXXXXX,
"name": "Name1"
},
{
"id": XXXXXX,
"name": "Name2"
},
{
"id": XXXXXX,
"name": "Name3"
}
]
【问题讨论】:
-
var json = []在这里做什么。看起来你并没有向它推任何东西。看起来每次运行时它都会覆盖以前的环境变量集。此外,您可以考虑在 Postman 中使用 Lodash 将这些值映射到键。 -
您能否也将
pm.response.json()的输出添加到问题中。 -
@DannyDainton - var json 被用作在 API 调用之间传递的环境变量。我会去看看 Lodash。
-
我可以看到
jsonPostman 变量已设置,但您在上面的行中有一个var json = []与它无关。看起来它试图在一个数组中收集一些东西,但它什么也没做。