如何在Postman多迭代场景下仅运行一次指定请求
解决Postman最后一个请求仅在最后一次迭代结束时运行的问题
问题分析
你当前的代码逻辑完全不符合需求:pm.info.iteration === 0只会在第一次迭代时触发跳转,和“最后一次迭代才运行Request6”的目标相反。另外,把setNextRequest放在Request5的Pre-request Script里也不合理——这个脚本是在发送Request5前执行的,没法判断当前迭代是否已进入收尾阶段。
正确实现方案
- 调整脚本位置:将控制跳转的代码移到Request5的Tests脚本中(Tests脚本在请求执行完成后运行,适合判断迭代状态并决定下一步操作)。
- 修正判断逻辑:用
pm.info.iteration === pm.info.iterationCount - 1识别最后一次迭代——Postman的迭代索引从0开始,总迭代数iterationCount减1就是最后一次迭代的索引值。
最终代码
在Request5的Tests标签页中添加以下代码:
// 判断当前是否为最后一次迭代 if (pm.info.iteration === pm.info.iterationCount - 1) { // 最后一次迭代结束后,跳转到Request6 postman.setNextRequest("Request 6") } else { // 非最后一次迭代,循环回到Request1 postman.setNextRequest("Request 1") }
额外注意事项
- 确保Request6的名称和代码里的字符串完全一致(包括大小写、空格),Postman对请求名称的匹配是严格区分的。
- 如果集合仅运行1次迭代(未设置迭代次数),
iterationCount等于1,此时iteration === 0会触发跳转,也能满足“仅运行一次Request6”的预期。
内容的提问来源于stack exchange,提问作者Vladislava Vodičková
相关产品推荐
相关产品推荐

