javascript - 如何遍历数组并使用下一个请求中的值(每次都有不同的值) - 邮递员
问题描述
我的回应包括一个数组。我需要在下一个请求中使用每次不同的 ID 号 。对于 exp.. 如果我的第一反应是:
{
"params": {
"Deposits": [
{
"id": "23",
"name": "blue"
},
{
"id": "54",
"name": "pink"
}
]
}
}
我首先需要获取第一次存款 id 的值(即 23)并在我的下一个 req 中实现它,运行它,然后再次运行它,但这次使用下一个 id 值(即 54)
我尝试在我的第一个请求“测试”中使用“for”循环
const responseJson = pm.response.json();
var Products = responseJson.params.Deposits;
for (var i=0; i<Products.length; i++)
{
postman.setEnvironmentVariable(Products[i].id)
}
在我的第二个请求正文中,我使用了
{
"id": "{{Id}}" // neither{{Products[i].id}} worked. At first should be eql to 23 and then 54
"Amount": 2
"date" : null
}
但是......它不起作用。我错过了一些东西..我如何在下一个请求中使用不同的 id 值?
编辑: 我的收藏共有 4 个请求。流程是:
- 运行第一个 req 并在响应中接收 DEPOSITS 数组,每个数组都有一个 uniqe id。
- 使用我在第一个响应中收到的数组中的第一个id运行第二个请求 。
- 运行第 3 次和第 4 次请求(我不需要在那里实现“id”,只是用所选存款的一些不同信息运行它..)
- 返回第二个请求,从数组中更改为下一个 id 号,然后再次移动到第三个请求,然后是第四个请求
所以它基本上是在运行请求 1 > 2> 3> 4 > 2> 3> 4> 2 > 3 >4 >2... 并且每次选择不同的存款。
解决方案
更新:
1 > 2> 3> 4 > 2> 3> 4> 2 > 3 >4 >2...
使用 Postman runner 时支持流量。
请求 1:获取数组ids
标签Test
const res = pm.response.json();
const ids = _.pluck(res.params.Deposits, 'id');
pm.environment.set('ids', JSON.stringify(ids));
请求 2:id
从ids
标签Pre-request
const ids = JSON.parse(pm.environment.get('ids'));
pm.environment.set('id', ids.shift());
pm.environment.set('ids', JSON.stringify(ids));
标签Body
{
"id": "{{id}}",
"Amount": 2,
"date": null
}
要求 3:无
请求4:添加逻辑,如果用完ids
,停止流。否则,继续请求 2。
const ids = JSON.parse(pm.environment.get('ids'));
if (ids.length === 0) {
postman.setNextRequest(null);
} else {
postman.setNextRequest("Req2")
}
结果:
推荐阅读
- python - 如何在信号数据中添加 5% 的高斯噪声
- python - 有没有办法让我用不同的元素循环附加函数?
- javascript - JS显示Div需要2次点击
- java - 打印结果集不显示所有行
- python - 扩展实例装饰器以获取键值参数?
- python - 如何根据 PyMC3 中的另一个值测量一个值的贝叶斯不确定性
- javascript - 映射时如何使用onClick
- python - Matplotlib 图和 PyQt5/PySide2 QSplitter Widget 之间的问题
- javascript - reactJS中的Firebase初始化问题
- google-oauth - google-api-js-client (gapi) 如何跨会话和刷新恢复登录状态