如何遍历 GET 请求并对找到的每个键执行 POST

How to loop over a GET request and do a POST every key found

为了让生活更轻松,一周前刚开始玩 Postman。

情况: 我有一个获取请求,其中 returns x 密钥数量(Jira 用户故事)

我想达到什么目的: 我想为每个使用 Postman

从 GET 请求中返回的密钥创建子任务

关于如何创建子任务的 POST 部分已经完成。我的问题是专门循环遍历 GET 请求列表来为每个故事创建它。

如有任何帮助,我们将不胜感激

我的邮递员 GET 请求:

{
"expand": "schema,names",
"startAt": 0,
"maxResults": 50,
"total": 8,
"issues": [
    {
        "expand": "operations,versionedRepresentations,editmeta,changelog,renderedFields",
        "id": "59332",
        "self": "xxx",
        **"key": "GRIP-502"**
    },
    {
        "expand": "operations,versionedRepresentations,editmeta,changelog,renderedFields",
        "id": "58465",
        "self": "xx",
        "key": "GRIP-429"
    },
    {
        "expand": "operations,versionedRepresentations,editmeta,changelog,renderedFields",
        "id": "56409",
        "self": "xxxx",
        **"key": "GRIP-338"**
    },
    {
        "expand": "operations,versionedRepresentations,editmeta,changelog,renderedFields",
        "id": "55191",
        "self": "xxx",
        "key": "GRIP-246"
    },
    {
        "expand": "operations,versionedRepresentations,editmeta,changelog,renderedFields",
        "id": "55180",
        "self": "xx",
        **"key": "GRIP-244"**
    },
    {
        "expand": "operations,versionedRepresentations,editmeta,changelog,renderedFields",
        "id": "52783",
        "self": "xx",
        "key": "GRIP-104"
    },
    {
        "expand": "operations,versionedRepresentations,editmeta,changelog,renderedFields",
        "id": "51641",
        "self": "xxx",
        "key": "GRIP-69"
    },
    {
        "expand": "operations,versionedRepresentations,editmeta,changelog,renderedFields",
        "id": "51473",
        "self": "xx",
        "key": "GRIP-48"
    }
]

}

您可以编写一个 javascript 函数来迭代和处理您响应中的每个问题。例如:

function createSubTask(issueId) {
    console.log(`POST Subtask: ${issueId}`);
}

for (let subtask of response.issues) {
 createSubTask(subtask.id)
}

您可以找到更多帮助here

在获取信息的第一个请求中,将问题存储到变量中:

pm.environment.set("issues",pm.response.json().issues)

在您要发送的 POSt 请求的预请求部分使用:

  let array = pm.environment.get("issues")
  let issue = array.pop()
   
  pm.environment.set("issues",array)
  pm.environment.set("id",issue.id) // or key what ever you want
  array.length!==0?postman.setNextRequest(pm.info.requestName):null