组合重放升级:同一 API 批量测不同入参
接口调试里,有一个高频但繁琐的需求:同一个 API,想快速跑多组不同的参数——正常流程、边界值、异常输入,各测一遍,对比响应是否符合预期。
以前你可能得在抓包历史里反复找同一条请求,手动改参数、点重放、记结果,一组一组来。组合重放(Combo Replay)本来就是为「多请求编排」设计的,但在实际使用中,我们发现它离「批量测同一 API」还差几步。这次更新,我们把这几步补上了。

这次解决了什么问题
组合重放可以把多个 HTTP/HTTPS 请求编排成一条流程,按依赖关系自动串行或并行执行。它的典型用途有两类:
- 链路联调——先登录,再带 Token 调业务接口(依赖注入)
- 批量验证——同一接口用不同入参,一次性跑完(并行重放)
第二类场景在测试里非常常见,但之前用起来有些别扭。本次更新围绕这个场景做了三项改进。
改进一:同一 API 可以添加多次
早期版本里,组合重放不允许选择同一个 API 的请求重复添加——这是为了避免用户误操作,但也挡住了「同接口多 case」这个正当需求。
现在已取消这一限制。 你可以把同一个 POST /api/order 添加三次,分别代表正常下单、库存不足、非法金额三种场景。三个节点之间不建立依赖关系,执行时会并行发出,跑完一眼对比各节点的成功/失败状态即可。
POST /api/order 节点1 → body: {"amount": 100, "type": "normal"}
POST /api/order 节点2 → body: {"amount": 0, "type": "edge"}
POST /api/order 节点3 → body: {"amount": -1, "type": "invalid"}
(无依赖 → 并行执行)
如果场景之间有先后顺序——比如必须先登录再调业务接口——仍然可以通过设置依赖来串行执行,行为与之前一致。
改进二:编辑规则时即可「预设参数」
同一 API 加了三个节点,参数怎么设?如果在执行页临时改,每次进入都要重新改一遍,没法沉淀成固定的测试 case。
现在在编辑组合重放规则时,点击节点菜单新增了 「预设参数」 入口。你可以为每个节点独立设置查询参数、请求头、请求体,保存后写入规则,下次打开还在。

预设参数的编辑界面与执行页的「修改请求」一致,体验统一。两者的区别如下:
| 预设参数(编辑页) | 修改请求(执行页) | |
|---|---|---|
| 入口 | 节点菜单 → 预设参数 | 执行页点击节点 |
| 持久化 | 写入规则,长期有效 | 仅本次执行,不写回规则 |
| 用途 | 固定测试 case | 临时微调再跑 |
改进三:表达式注入,动态参数不再手改
有些参数没法写死——时间戳每次都要是当前值,请求 ID 需要 UUID,Token 要在多个节点间共用但又不想每个节点单独改。
这次新增了 表达式注入。在设置请求参数时(查询参数、请求头、请求体),使用 ${...} 语法,执行重放时会自动替换:
内置方法:
| 表达式 | 替换结果 |
|---|---|
${method.timestamp()} | 当前时间戳(毫秒) |
${method.uuid()} | UUID(小写) |
${method.date()} | 当天日期,如 2026-07-29 |
${method.time()} | 当前时间,如 14:30:00 |
${method.datetime()} | 日期时间,如 2026-07-29 14:30:00 |
全局变量:
使用 ${token}、${appId} 等非 method. 开头的表达式,即为全局变量。当规则中检测到这类表达式时,执行页状态栏(「总节点 / 成功 / 失败」那一行)最右侧会出现 🌐 按钮。点击后填写各变量的值,保存后随规则持久存储,除非删除规则。

表达式注入在预设参数和执行页修改请求中均可用。一个组合示例:
Header: X-Request-Id: ${method.uuid()}
Query: ts=${method.timestamp()}
Body: {"token": "${token}", "userId": "123"}
执行前在 🌐 中填写 token 的实际值,时间戳和 UUID 则每次执行自动生成。
参数处理的执行顺序
如果同时使用了预设参数、表达式注入和依赖注入,实际发送请求前的处理顺序为:
预设参数 / 修改请求
↓
表达式注入(${method.timestamp()} 等)
↓
依赖注入(参数映射)
↓
发送 HTTP 请求
一个完整的例子
假设你要测试登录接口的三种输入:
- 进入组合重放,创建规则
- 从抓包历史添加三次
POST /api/login - 分别给三个节点设置预设参数(正常账号 / 密码错误 / 空密码)
- 不建立依赖 → 保存规则
- 进入执行页,点击「执行重放」
- 执行完成后点击各节点,查看请求/响应详情
如果还需要动态 requestId,在 body 里加上 "requestId": "${method.uuid()}" 即可,无需每次手动填写。

与依赖注入的配合
本次更新聚焦在「同 API 批量测试」场景,依赖注入能力保持不变——仍然适合登录链式调用、上下游参数传递等场景。两者可以组合使用:并行节点测边界入参,串行节点跑业务流程,动态参数用表达式,Token 用依赖注入或全局变量,各取所长。
更详细的操作步骤、依赖关系说明和常见问题,见 组合重放使用教程。
版本要求
- iOS:>= 3.13
- Android:>= 1.2.0
- macOS/Windows:暂不支持
如果你已经在用组合重放做接口联调,这次升级应该能少做很多重复的手动改参。欢迎试用,有问题随时反馈。