翻译:凯凯老师
源地址:
https://learning.getpostman.com/docs/postman/collection_runs/building_workflows/
当你开始一个集合运行时,所有的请求都是按照你在主应用程序中看到的顺序运行的。所以所有的请求都是先按文件夹的顺序执行,然后再按集合根目录的顺序执行。
但是,您可以使用一个名为postman.setNextRequest()的内置函数覆盖此行为。顾名思义,这个函数允许您指定接下来运行哪个请求。
开始
在开始之前,下载并导入集合。我们将在本主题中讨论json作为示例。
基本工作流程
假设我们有一个包含四个请求的集合。如果直接运行此集合,则集合运行器将按顺序运行所有四个请求。
现在让我们添加postman.setNextRequest()来请求1的测试脚本,如下所示。postman.setNextRequest()是一个带有一个参数的函数,该参数是接下来要运行的请求的name或ID。
在本例中,我们将请求1的测试脚本中的下一个请求设置为request 4。因此,在请求1完成后,执行跳转到请求4。如果我们现在运行相同的集合,您将看到现在只运行两个请求。
注意,postman.setNextRequest()只适用于打算运行集合的运行器和Newman,而不是发送单个请求。
高级工作流
现在我们已经很好地理解了setNextRequest()的工作原理,我们可以执行高级操作。
由于不再受定义请求的顺序的限制,您可以跳过集合、建立条件逻辑或跳过不必要的请求。
这篇文章解释了如何编写一个集合,它将根据您最喜爱的音乐艺术家为您生成Spotify播放列表。
在使用这个工作流时,请记住这两个要点:
- setNextRequest()总是在当前请求的末尾执行。这意味着,如果将这个函数放在pre-request或test脚本中的其他代码块之前,这些代码块仍然会执行。
- setNextRequest()有一个作用域,它是集合运行的源。如果您运行一个集合,您可以跳转到集合中的任何请求(甚至是文件夹中的请求,使用相同的语法)。但是,如果您运行一个文件夹,postman.setNextRequest()的范围仅限于该文件夹。因此,可以跳转到此文件夹中的任何请求,但不能跳转到文件夹外的请求。它包括其他文件夹中的请求,以及集合中的根级请求。