使用邮递员在多个循环中设置环境变量

Set env variables in multiple loops using postman

我想测试以下工作流结构。

在第一个请求脚本中,

var st = [1,2,3]
var i = st.length;
for(var j=0; j<i; j++) {
    pm.environment.set("id", st[j]);
    postman.setNextRequest("getNext");
};

在getNext预测试脚本中,

var id = pm.environment.get("id");
console.log(`Run ${id}`);

在控制台中,仅显示 Run 3 条消息。

问题是环境变量被最后的元素覆盖了。我只能看到列表的最后一个元素,并且请求正在使用最后一个元素。

我想知道如何保持环境变量不被覆盖?

编辑 我删除了乱七八糟的问题并添加了简单的工作流程。

postman.setNextRequest() is always executed at the end of the current request. This means that if you put this function before other code blocks anywhere in pre-request or test script, these blocks will still execute.

这意味着,循环运行 3 次,并且仅在最后,当整个脚本完成时,它调用 postman.setNextRequest(),此时 id 的值为 3 .

有关详细信息,请参阅 documentation

找到这个博客 post,它解释了如何实现它:https://ambertests.com/2019/01/28/postman-how-to-dynamic-iteration-within-a-collection/