我正在设计一个相当简单的集合,集合中有两项服务:
我已成功从服务 #1 获取令牌并将其设置为变量,并在请求 #2 中使用所述令牌。然后,我在 Runner 中使用 csv 文件使用不同的参数调用服务#2。
我想要实现的目标是仅运行服务 #1 一次,而不是运行与 CSV 上的行数一样多的次数。可以吗?
setNextRequest() 又名“goto”不应该在任何结构化语言中使用。这就是将控制级功能放入单独的测试中,并将在第一天导致意大利面条式代码。 我发现 Postman 和 Newman 中集合和变量的一些基础知识让事情变得更容易:
我将所有共享函数(today().todayPlus1Week() 等)与我的 Auth 一起放置,以便稍后使用的所有全局变量,例如。 {{today}}、{{tomorrow}}、{{todayPlus1Week}} 只设置一次,但也可以通过任何请求进行简单调用来刷新,例如,如果您有一个巨大的数据集,并且需要很长时间运行。
有关示例,请搜索“postman utils Examples”或从这里开始: 如何在Postman中编写全局函数
您可以在请求 #2 的测试脚本中使用
postman.setNextRequest("request #2");
在第一次运行后跳过请求 #1 的执行。
但是您还需要添加一个条件,仅在 pm.info.iteration 小于所需执行量时才执行此操作,以避免无限循环。