实战指南
本文通过实际案例,深入讲解 Mock 功能的完整用法。
分组管理
Mock 规则支持分组管理,通过分组可以将不同项目、不同场景的 Mock 规则隔离开来,互不干扰。
- 新增分组 — 点击分组下拉框顶部的 + 新增分组,输入分组名称即可创建,创建后自动切换到新分组
- 切换分组 — 通过分组下拉框切换当前分组,切换后 Mock 列表仅展示当前分组下的规则,其他分组的规则不会被加载
- 删除分组 — 在下拉框中点击自定义分组右侧的删除图标,确认后即可删除该分组及其下所有 Mock 规则。默认分组不可删除
- 跨组复制 — 通过右键菜单可将 Mock 规则复制到其他分组,复制后生成独立的副本,修改互不影响
- 导入导出 — 导出支持选择「当前分组」或「全部」;导入时可选择导入到已有分组或新建分组,自动为新规则分配唯一 ID
表格设置
Mock 列表支持自定义列显示,点击工具栏中的列设置图标即可控制各列的显示与隐藏,设置会自动持久化,刷新后仍然保留。
单用例切换
同一个接口可以创建多条 Mock 规则,通过启用/停用或调整顺序来切换不同的响应数据,常用于 A/B 测试、多场景模拟等场景。
命名 Mock 规则
双击 Mock 列表的标题列,可以为每条 Mock 起一个有意义的名字(如「正常响应」「异常兜底」),方便区分:

勾选切换
通过勾选/取消勾选第一列的复选框,控制哪条 Mock 生效。未被勾选的规则不参与匹配,只保留勾选的那条作为当前响应。注意左上角标题栏中「测试1」「测试2」的切换效果:

拖拽排序
当多条 Mock 都处于勾选状态时,匹配规则相同的请求会优先命中排在最前面的那条。通过拖拽调整顺序即可切换命中的 Mock:

高级 Mock
高级 Mock 模式允许通过编写 JavaScript 函数来动态生成响应,适用于需要根据请求参数、随机数据、时间戳等条件返回不同结果的场景。
在接口详情面板中将响应模式切换为「高级 Mock」,编辑器会切换为函数编辑模式,并提供完整的类型提示。
函数签名如下:
(context, response, { _, dayjs }) => {
return response;
};参数说明:
- context — 请求与响应的独立快照;修改该对象不会影响页面中的原始请求
context.request:{ url, method, headers, body, query }context.response:{ status, statusText, headers }
- response — 响应体数据,修改后作为返回值
- utils — 工具集
utils._:lodashutils.dayjs:dayjs
使用示例 — 根据分页参数动态生成列表数据:
(context, response, { _, dayjs }) => {
const { query } = context.request;
response.data.list = Array.from({ length: 10 }, (_, i) => ({
id: i + 1,
name: `项目${i + 1}`,
date: dayjs().subtract(i, 'day').format('YYYY-MM-DD'),
}));
response.data.total = 100;
response.data.pageNo = Number(query.pageNo) || 1;
return response;
};下面是编辑器中的实际效果:

搜索能力
监控面板提供灵活的搜索过滤能力,帮助快速定位目标请求。
搜索栏由三部分组成:关键词输入框、搜索字段、匹配方式。
搜索字段 — 限定搜索范围:
- 全部 — 在所有字段中搜索
- URL — 匹配完整 URL(含域名)
- 路径 — 仅匹配 URL 路径部分
- 方法 — 匹配请求方法(
GET、POST等) - 查询参数 — 匹配
URL Query参数 - 请求体 — 匹配请求体内容
- 响应体 — 匹配响应体内容
- 高亮 — 仅显示有高亮标记的请求
匹配方式:
- 包含 / 不包含 — 关键词是否出现在字段中
- 等于 / 不等于 — 字段值是否完全匹配
- 正则 — 使用正则表达式匹配,如
^/portal/.*
输入框右侧的「Aa」按钮可切换是否区分大小写。

Mock 其他能力
除了 Mock 响应体之外,还可以对请求的各类元数据和状态进行 Mock,下面逐一介绍。
入参 Mock
入参 Mock 可以修改发送到后端的请求参数,用于测试后端在不同入参下的真实响应。
- POST / PUT / PATCH 等请求 — 勾选 Mock 请求体,在
Body面板编辑请求体 - GET / HEAD 等请求 — 勾选 Mock Query,在
Query面板编辑查询参数
此时建议取消勾选 Mock 响应,因为入参 Mock 的目的是观察后端对不同入参的真实返回;同时开启响应 Mock 会覆盖真实结果,失去测试意义。

请求头 Mock
与入参 Mock 原理一致,勾选 Mock 请求头 后可在 Headers Panel 中修改请求头,用于模拟不同客户端、切换身份令牌、测试跨域等场景。同样建议取消勾选 Mock 响应,以观察后端对不同请求头的真实处理结果。

Mock 特性
接口详情面板中还提供以下特性开关,可根据需要组合使用:
忽略域名匹配 — 开启后只匹配
URL路径,不区分域名,适用于同一接口在测试、预发、线上共用的情况模拟异常 — 开启后直接返回错误状态码(如
500),用于测试前端异常处理逻辑
模拟超时 — 开启后模拟网络请求超时,用于测试加载状态、超时重试等交互
延迟响应 — 设置响应延迟时间(毫秒),用于模拟慢网络或测试 loading 效果

以上特性可同时开启,例如同时开启 模拟异常 + 延迟响应 来测试弱网环境下的错误提示体验。
匹配策略演练
匹配策略决定了一条 Mock 规则如何与实际请求配对。下面通过实际场景演示四种策略的适用时机。
精确匹配 — 同接口不同入参
当同一接口需要根据不同请求参数返回不同 Mock 数据时,可以使用 精确匹配。两条规则互不干扰,各自返回独立的 Mock 数据。

相同的 URL 可以分别命中各自的 Mock。

路径匹配 — 全局统一兜底
当只需要关心接口路径、不关心请求参数时,可以使用 路径匹配,统一返回一份 Mock 数据。
GET /api/user/list?page=1&size=10→ 命中GET /api/user/list?page=5&size=20→ 同样命中(query被忽略)

智能匹配 — 现场回溯
精确匹配优先,未命中时自动降级为路径匹配,兼顾精确度和覆盖面。
场景:现场回溯导出了部分接口数据,需要保证已导出的精确还原,未导出的也有兜底响应。
- 已导出的请求
GET /api/list?page=1&size=10→ 精确命中,返回导出数据 - 未覆盖的请求
GET /api/list?page=2&size=20→ 降级为路径匹配,返回同一条 Mock
自定义匹配
当内置策略无法满足时,通过自定义组合 URL 匹配方式、请求方法、请求体比对条件来精确控制。
动态路径匹配
包含匹配 — 商品详情接口路径包含动态 ID,如 /api/goods/123、/api/goods/456,需要所有商品 ID 统一返回同一份 Mock。
- 选择自定义匹配,
URL匹配方式选择「包含」,填入/api/goods/ - 请求
/api/goods/123→ 命中 - 请求
/api/goods/456→ 同样命中
正则匹配 — 接口路径前缀动态变化,如 /v1/api/list、/v2/api/list。
URL匹配方式选择「正则」,填入/v\d+/api/list- 请求
/v1/api/list→ 命中 - 请求
/v2/api/list→ 同样命中
请求方法匹配
每条 Mock 规则可以配置是否匹配请求方法(GET、POST、PUT、DELETE 等):
- 匹配全部方法 — 不区分 HTTP 方法,只要
URL和请求体匹配即命中 - 匹配指定方法 — 仅匹配创建时记录的 HTTP 方法
场景:同一 URL 同时存在 GET /api/order(查询)和 POST /api/order(创建),需要分别 Mock 不同响应。
- 创建两条规则,
URL相同但方法分别为GET和POST - 开启 匹配指定方法,两条规则各自命中对应的请求
请求体比对
控制匹配时是否比较请求体内容:
- 关闭(默认)— 只匹配
URL,不关心请求体 - 开启 —
URL命中后,还要求请求体指纹一致才命中
场景:PUT /api/user/update 接口,需要根据不同的更新内容返回不同结果。
- 开启请求体比对后,
body: {"name": "张三"}和body: {"name": "李四"}会分别匹配到不同的 Mock 规则
TIP
请求体比对在精确匹配和智能匹配中默认开启,在路径匹配中默认关闭。自定义匹配中可手动控制。
以下是一个组合示例:方法设为 ALL,URL 正则设置为任意字符都能匹配,并关闭请求体比对。

所有接口都会命中这条 Mock。

