Postman 不支持自动识别依赖关系,必须显式控制执行顺序:用 postman.setNextRequest() 动态跳转(名称严格匹配、传 null 终止)或 Runner 拖拽排序(需手动传递变量),并结合断言与变量提取确保前置成功。

Postman 本身不支持「自动识别依赖关系」后顺序执行,必须显式控制执行顺序——靠 postman.setNextRequest() 或 Runner 中的手动排序。
用 postman.setNextRequest() 实现动态跳转
这是最灵活、也最容易出错的方式。它在当前请求的 Tests 脚本中生效,决定下一个要跑哪个请求(按名称匹配)。
- 名称必须完全一致,包括空格和大小写,比如
postman.setNextRequest("Login")不会匹配名为login或Login API的请求 - 如果目标请求未被选中运行(比如在 Runner 里取消勾选),则链路中断,后续请求不会执行
- 传
null表示终止,例如postman.setNextRequest(null),不是字符串"null" - 常见误写:
postman.setNextRequest("null")→ 这会去找一个叫null的请求,找不到就停住,不报错也不提示 - 可配合断言结果做分支:比如登录成功(
pm.response.code === 200)才跳转到获取用户信息,否则跳转到错误处理请求
Runner 中拖拽调整顺序 + 全局/环境变量传递数据
当接口间有简单线性依赖(A→B→C),且不需要条件跳转时,直接在 Collection Runner 界面拖动请求排序更直观、更稳定。
Postman Mac版是一款专为macOS设计的API开发与测试工具,凭借简洁的界面和强大的功能,深受开发者喜爱。它支持发送各种HTTP请求(GET、POST、PUT等),轻松管理接口集合、环境变量和模拟服务器。Mac用户可享受原生性能、快捷键优化及与系统无缝集成的体验,适用于接口调试、自动化测试和文档生成。无论是个人项目还是团队协作,Postman for Mac都能提升API开发效率,是ma
- 拖动只影响 RUN ORDER 列表中的顺序,不影响 Collection 左侧原始排列
- 变量传递必须手动写脚本:在 A 的 Tests 中用
pm.environment.set("token", jsonData.token),B 的 URL 或 Body 中用{{token}}引用 - 注意变量作用域:环境变量(
pm.environment)比全局变量(pm.globals)更安全,避免跨环境污染 - 如果 B 依赖 A 的响应体字段但 A 失败了,B 仍会执行——Runner 不校验前置是否成功,得靠断言 +
postman.setNextRequest()拦截
循环执行时怎么避免死循环
用 postman.setNextRequest() 回指前面的请求(比如 C → A)确实能实现循环,但没控制机制就会卡死。
- 必须引入计数器或状态判断:比如用
pm.environment.get("loopCount") || 0,每次加 1 后再set,超过阈值就设为null - 不能只靠响应状态码判断是否继续:有些接口失败返回 200 但 body 里
code: 500,得解析 JSON 再判断 - 延迟不是万能的:Runner 的 Delay 设置是固定间隔,无法根据响应内容动态调整;真要等某个条件满足,还是得靠脚本轮询 +
setTimeout(不推荐)或拆成多次 Runner 执行
真正麻烦的从来不是“怎么让 B 在 A 之后跑”,而是“怎么确保 B 只在 A 成功返回有效 token 后才跑,且失败时能清晰暴露在哪一步断的”。这需要把断言、变量提取、跳转逻辑三者绑在一起写,漏掉任意一环,表面流程通了,实际可能拿错数据、跳错请求、静默失败。
















