1

我有一组 API 请求(保存在同一文件夹下)。我需要根据 Runner 中指定的迭代次数执行这些多次。但是有一个(第一个)请求在整个运行过程中只需要执行一次。该请求是收集 auth-token 的认证请求。

即我有Req1Req2Req3Req4,保存在同一个集合/文件夹下。我需要运行这组 100 次迭代。但是Req1应该只运行一次,而Req2Req3Req4应该全部执行 100 次。

有没有办法告诉 Postman(或以其他方式设置)在整个运行开始时只执行一次Req1

4

1 回答 1

2

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/

于 2019-08-02T21:20:53.017 回答