我有一组 API 请求(保存在同一文件夹下)。我需要根据 Runner 中指定的迭代次数执行这些多次。但是有一个(第一个)请求在整个运行过程中只需要执行一次。该请求是收集 auth-token 的认证请求。
即我有Req1,Req2,Req3,Req4,保存在同一个集合/文件夹下。我需要运行这组 100 次迭代。但是Req1应该只运行一次,而Req2、Req3和Req4应该全部执行 100 次。
有没有办法告诉 Postman(或以其他方式设置)在整个运行开始时只执行一次Req1?
我有一组 API 请求(保存在同一文件夹下)。我需要根据 Runner 中指定的迭代次数执行这些多次。但是有一个(第一个)请求在整个运行过程中只需要执行一次。该请求是收集 auth-token 的认证请求。
即我有Req1,Req2,Req3,Req4,保存在同一个集合/文件夹下。我需要运行这组 100 次迭代。但是Req1应该只运行一次,而Req2、Req3和Req4应该全部执行 100 次。
有没有办法告诉 Postman(或以其他方式设置)在整个运行开始时只执行一次Req1?
Postman 具有构建工作流功能,您可以在其中指定接下来要调用的请求。
到达 Req4 后,调用 Req2,它基于计数器在 Req1 之后。这可以在Tests
邮递员请求窗口的选项卡中实现。
Pseudo code -
set 2 global/environment variables , iteration = <some number you need>, iteration_ref = 0
<In Req1 window>
if(pm.globals.get("iteration_ref") < pm.globals.get("iteration")-1)
postman.setNextRequest('Req2')
<In Req2 window>
if(pm.globals.get("iteration_ref") < pm.globals.get("iteration")-1)
postman.setNextRequest('Req3')
<In Req3 window>
if(pm.globals.get("iteration_ref") < pm.globals.get("iteration")-1)
postman.setNextRequest('Req4')
<In Req4 window>
if(pm.globals.get("iteration_ref") < pm.globals.get("iteration")-1)
{
postman.setGlobalVariable("iteration_ref",
Number(postman.getGlobalVariable("iteration_ref"))+1);
postman.setNextRequest('Req2')
}
或者仅在最后一个请求中,如果您对集合中设置的请求的顺序非常有信心。
<In Req4 window>
if(pm.globals.get("iteration_ref") < pm.globals.get("iteration")-1)
{
postman.setGlobalVariable("iteration_ref",
Number(postman.getGlobalVariable("iteration_ref"))+1);
postman.setNextRequest('Req2')
}
确保您首先在集合和only 1 iteration
集合运行器中具有 Req1(Post Request)。我们使用全局/环境变量进行迭代。
PS:我强烈建议使用请求库来调用 API 的简单 python 或 js 脚本,上面的流程是一个机智的 hack。
参考 - https://learning.getpostman.com/docs/postman/collection_runs/building_workflows/