Postman集合运行时如何让指定请求按自定义次数迭代执行?
Postman单请求循环执行配置方案
原代码错误原因
- 判断逻辑不匹配需求:
pm.info.iteration是集合全局的迭代次数,该参数针对的是整个集合的循环次数,而非单个请求的运行次数,你设置的判断条件永远不会触发,会默认按集合原有顺序执行请求。 - 参数传递错误:
postman.setNextRequest()的入参需要是请求在集合内的精确命名,而非请求URL,传URL无法匹配到对应请求。
具体实现步骤
- 先配置集合运行的基础参数:将集合的运行迭代次数设置为1,不要设置为20,否则会导致整个集合整体循环20次,不符合需求。
- 在Request 1的Tests标签中添加如下代码:
// 初始化Request1的运行计数变量,首次运行自动赋值为0 if (!pm.collectionVariables.get("req1_run_count")) { pm.collectionVariables.set("req1_run_count", 0); } // 每次运行后计数加1 let currentCount = pm.collectionVariables.get("req1_run_count") + 1; pm.collectionVariables.set("req1_run_count", currentCount); if (currentCount < 20) { // 未达到20次,下一个请求继续执行Request 1 postman.setNextRequest("Request 1"); } else { // 已跑满20次,清除计数变量,下一个请求跳转至Request 2 pm.collectionVariables.unset("req1_run_count"); postman.setNextRequest("Request 2"); }
- 可选配置:如果要确保执行顺序完全可控,可以在Request 2的Tests标签中添加如下代码,执行完成后自动跳转至Request 3:
postman.setNextRequest("Request 3");
注意事项
- 所有
postman.setNextRequest()入参的请求名称要和你集合内的请求命名完全一致,大小写、空格都要匹配,否则会跳转失败。 - 不需要额外修改Request 3的配置,执行完成后整个集合运行会自动结束。
内容的提问来源于stack exchange,提问作者Flamingo Go
相关产品推荐
相关产品推荐

