首页 > 解决方案 > 如何在邮递员中遍历数组以更改环境变量

问题描述

我正在尝试遍历一组 id 以更改其标题。{{id}}{{title}}

我的请求看起来像这样{{app}}/data/{{id}}

身体是这样的{ "title": "{{title}}" }

这是我当前不起作用的测试代码,但或多或​​少是我正在努力的方向。

var ids = [1, 2, 3]
var titles = ["title1", "title2", "title3"]
var i = titles.length
for(var j = 0; j < i; j++){
     pm.environment.set("id",ids[j])
     pm.environment.set("title",titles[j])
     postman.setNextRequest("<request_name>")
}

我的问题是标题只更新了最后一个标题3,而忽略了其余部分。有谁知道如何解决这个问题?

标签: javascriptarrayspostmanpostman-pre-request-script

解决方案


首先,postman.setNextRequest仅适用于跑步者。

其次,您的任务将使用以下代码完成:

在请求 1 的选项卡测试中:

//Save 2 arrays
let ids = [1, 2, 3]
let titles = ["title1", "title2", "title3"]
pm.environment.set("ids", JSON.stringify(ids));
pm.environment.set("titles", JSON.stringify(titles));

在请求 2 的预请求选项卡中:

let ids = JSON.parse(pm.environment.get("ids"));
let titles = JSON.parse(pm.environment.get("titles"));

pm.environment.set("id", ids.shift())
pm.environment.set("title", titles.shift())

pm.environment.set("ids", JSON.stringify(ids));
pm.environment.set("titles", JSON.stringify(titles));

在请求 2 的选项卡测试中:

let ids = JSON.parse(pm.environment.get("ids"));
if (ids.length > 0){
    postman.setNextRequest("New Request 69020616");
}

结果

在此处输入图像描述


推荐阅读