在Postman集合中,其中一个服务只需要调用一次

问题描述 投票:0回答:2

我正在设计一个相当简单的集合,集合中有两项服务:

  • 请求#1:获取令牌服务
  • 请求#2:获取详细信息的服务(需要之前服务的令牌)

我已成功从服务 #1 获取令牌并将其设置为变量,并在请求 #2 中使用所述令牌。然后,我在 Runner 中使用 csv 文件使用不同的参数调用服务#2。

我想要实现的目标是仅运行服务 #1 一次,而不是运行与 CSV 上的行数一样多的次数。可以吗?

postman postman-collection-runner postman-pre-request-script
2个回答
0
投票

setNextRequest() 又名“goto”不应该在任何结构化语言中使用。这就是将控制级功能放入单独的测试中,并将在第一天导致意大利面条式代码。 我发现 Postman 和 Newman 中集合和变量的一些基础知识让事情变得更容易:

  • 使用 pm.environment.get() 和 set() 而不是 pm.collection,这样你的变量就可以被所有东西访问(本质上是全局范围)
  • 将您的身份验证作为第一次调用,并将您的身份验证令牌保存为环境变量以供其他所有内容使用(听起来您已经拥有了)。
  • 将共享/通用函数作为 utils 放在 Auth 请求预脚本的底部,以便它们运行一次,然后也可以重用。

我将所有共享函数(today().todayPlus1Week() 等)与我的 Auth 一起放置,以便稍后使用的所有全局变量,例如。 {{today}}、{{tomorrow}}、{{todayPlus1Week}} 只设置一次,但也可以通过任何请求进行简单调用来刷新,例如,如果您有一个巨大的数据集,并且需要很长时间运行。

有关示例,请搜索“postman utils Examples”或从这里开始: 如何在Postman中编写全局函数


-1
投票

您可以在请求 #2 的测试脚本中使用

postman.setNextRequest("request #2");
在第一次运行后跳过请求 #1 的执行。

但是您还需要添加一个条件,仅在 pm.info.iteration 小于所需执行量时才执行此操作,以避免无限循环。

© www.soinside.com 2019 - 2024. All rights reserved.