首页 > 解决方案 > 如何遍历数组并使用下一个请求中的值(每次都有不同的值) - 邮递员

问题描述

我的回应包括一个数组。我需要在下一个请求中使用每次不同的 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 个请求。流程是:

  1. 运行第一个 req 并在响应中接收 DEPOSITS 数组,每个数组都有一个 uniqe id
  2. 使用我在第一个响应中收到的数组中的第一个id运行第二个请求 。
  3. 运行第 3 次和第 4 次请求(我不需要在那里实现“id”,只是用所选存款的一些不同信息运行它..)
  4. 返回第二个请求,从数组中更改为下一个 id 号,然后再次移动到第三个请求,然后是第四个请求

所以它基本上是在运行请求 1 > 2> 3> 4 > 2> 3> 4> 2 > 3 >4 >2... 并且每次选择不同的存款。

标签: javascriptarraysloopspostman

解决方案


更新:

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));

请求 2idids

标签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")
}

结果:

在此处输入图像描述


推荐阅读