使用邮递员在多个循环中设置环境变量
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/
我想测试以下工作流结构。
在第一个请求脚本中,
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/