postman使用教程15-构建请求工作流(setNextRequest)

前言

postman 在收集运行时,所有请求都将按照在Postman中看到的顺序运行。因此,首先按照文件夹的顺序执行所有请求,然后再执行集合根目录中的所有请求。
可以用内置函数来覆盖此行为postman.setNextRequest(),顾名思义,此功能允许您指定下一个运行的请求。

工作流

假设有四个接口:注册,test_demo, 登录, 个人信息,写到一个 Collections

接下来我要改变执行顺序:注册-登录-个人信息-test_demo

setNextRequest

设置下一个要执行的请求

postman.setNextRequest("request_name");

在Tests中使用示例

注册后执行登录

“注册”接口执行后,在Tests中写执行写个请求“登录”

工作流有4个接口,指定了注册后执行登录

那么运行的结果是:注册-登录-个人信息,此时会跳过test_demo接口

也就是说当没指定顺序的时候,会按收集器写的顺序执行,如果指定了下一个请求,会执行下个请求(然后遵循前面规则按顺序往下执行)

循环当前请求

setNextRequest()执行当前接口名称,导致Postman连续运行当前请求。如果我要重复执行100次注册,可以通过for循环实现

// 重复执行100次注册

for (i = 0; i <= 100; i++) { 
    console.log(i);
    postman.setNextRequest("注册");
 }

在Collection Runner运行的时候会重复执行100次登录接口

停止执行工作流程

postman.setNextRequest(null);

关于postman.setNextRequest()以下几点要点:

  • 指定后续请求的名称或ID,收集运行器将负责其余的工作。
  • 它可以在预请求或测试脚本中使用。如果有多个分配,则最后一个设置值优先。
  • 如果postman.setNextRequest()请求中不存在,则收集运行器默认为线性执行并移至下一个请求

使用此工作流程时,请记住以下两个事实:

  • postman.setNextRequest()总是在当前请求的末尾执行。这意味着,如果您将此功能放在预请求或测试脚本中任何其他代码块之前,则这些代码块仍将执行。
  • postman.setNextRequest()具有作用域,这是收集运行的来源。如果运行集合,则可以跳转到集合中的任何请求(甚至使用相同语法的文件夹中的请求)。
    但是,如果运行文件夹,则范围postman.setNextRequest()仅限于该文件夹。因此,您可以跳到该文件夹​​中的任何请求,但不能跳到该文件夹​​之外的任何请求。
    它包括其他文件夹中的请求,以及集合中的根级别请求

手动拖动顺序

使用 postman.setNextRequest() 设置工作流实际上不太直观,我们习惯上按看到的顺序执行,在Collection区域也可以手动拖动改变顺序

拖动后顺序

官方文档参考https://learning.postman.com/docs/running-collections/building-workflows/
作者-上海悠悠 blog地址 https://www.cnblogs.com/yoyoketang/

posted @   上海-悠悠  阅读(1480)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2020-05-11 Cypress web自动化6- Assertions断言使用(should, expect)
2020-05-11 Cypress web自动化5-table表格元素(别名使用Aliasing)
2020-05-11 Cypress web自动化4-操作页面元素(Actions行为事件)
2020-05-11 Cypress web自动化3- 登录web网站案例脚本
2020-05-11 Cypress web自动化2-pycharm写第一个脚本
2019-05-11 appium+python自动化64-使用Uiautomator2执行driver.keyevent()方法报错解决
2018-05-11 appium+python自动化45-夜神模拟器连不上(adb server version (36) doesn't match this client (39); killing...)
点击右上角即可分享
微信分享提示