Postman 使用上一步中的数组多次运行邮递员请求

Postman 使用上一步中的数组多次运行邮递员请求,postman,postman-collection-runner,Postman,Postman Collection Runner,我正在使用postman编写一些测试脚本和数据清理脚本,我想知道是否可以对上一步生成的数组结果运行请求 例如,我有一个API,它以JSON的形式返回任务,如下所示: [ { "active": true, "_id": "5b2101244651a04a4907b094", "name": "Test Task", "updatedAt": "2018-06-13T11:33:56.911Z", "creat

我正在使用postman编写一些测试脚本和数据清理脚本,我想知道是否可以对上一步生成的数组结果运行请求

例如,我有一个API,它以JSON的形式返回任务,如下所示:

[
    {
        "active": true,
        "_id": "5b2101244651a04a4907b094",
        "name": "Test Task",
        "updatedAt": "2018-06-13T11:33:56.911Z",
        "createdAt": "2018-06-13T11:33:56.911Z"
    },
    {
        "active": true,
        "_id": "5b2101244651a04a4907b067",
        "name": "Test Task 2",
        "updatedAt": "2018-06-13T11:33:56.911Z",
        "createdAt": "2018-06-13T11:33:56.911Z"
    }
]
所以在测试脚本中,我运行此命令来收集ID数组:

var jsonData = JSON.parse(responseBody)
postman.setEnvironmentVariable('task_id_list', jsonData.map((i) => i._id))
下一个请求是删除任务,但API一次只删除一个任务。我正在尝试做一些类似的事情:

http://localhost:3000/api/v1/tasks/{{task_id_list}}
我希望邮递员能看到
task\u id\u list
是一个数组和简单的“工作”,但事实似乎并非如此。是否可以基于阵列输入多次运行步骤?

此解决方案

在第一个请求的测试脚本中获取ID数组(我更喜欢将其存储在JSON中以避免bug):

在2个请求的预请求脚本中:

var count = +pm.environment.get("count");
var iDs = JSON.parse(pm.environment.get("IdArray"));
pm.variables.set("task_id_list", iDs[count]); //like one-request environment variable
count = count + 1; //next iteration
if(count < iDs.length)
{
    postman.setNextRequest("NAME OF THIS REQUEST");
}
else 
{
    postman.setNextRequest(null); // or next request name
} 
pm.environment.set("count", count)
var count=+pm.environment.get(“count”);
var id=JSON.parse(pm.environment.get(“IdArray”);
pm.variables.set(“任务id列表”,id[count])//就像一个请求环境变量一样
计数=计数+1//下一次迭代
如果(计数

所以你应该理解我的想法。

你能在第二个请求的预请求脚本中添加一些内容,或者从列表中弹出一个项目吗?每一个变量都将被存储为一个新变量,然后在删除请求的URL中引用。从未尝试过这样做,所以我对解决方案感兴趣。您是否忘记在第二个脚本中增加计数?
var count = +pm.environment.get("count");
var iDs = JSON.parse(pm.environment.get("IdArray"));
pm.variables.set("task_id_list", iDs[count]); //like one-request environment variable
count = count + 1; //next iteration
if(count < iDs.length)
{
    postman.setNextRequest("NAME OF THIS REQUEST");
}
else 
{
    postman.setNextRequest(null); // or next request name
} 
pm.environment.set("count", count)