如何遍历邮递员中的数组以更改环境变量
How to iterate through an array in postman to change environment variables
我正在尝试循环访问一组 ID 以更改其标题。 {{id}}
和 {{title}}
.
我的请求是这样的{{app}}/data/{{id}}
body 看起来像这样 { "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>")
}
我的问题是标题只更新了最后一个 title3 而忽略了其余部分。有谁知道如何解决这个问题?
首先,postman.setNextRequest
只适用于runner。
其次,您的任务将使用此代码实现:
在请求 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");
}
结果
我正在尝试循环访问一组 ID 以更改其标题。 {{id}}
和 {{title}}
.
我的请求是这样的{{app}}/data/{{id}}
body 看起来像这样 { "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>")
}
我的问题是标题只更新了最后一个 title3 而忽略了其余部分。有谁知道如何解决这个问题?
首先,postman.setNextRequest
只适用于runner。
其次,您的任务将使用此代码实现:
在请求 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");
}
结果