============================== 使用说明 ==============================
【基本操作】
- 页面右下角蓝色 "M" 悬浮球 → 点击打开管理面板;
- 面板"最近请求"列表会记录页面发出的接口,点击某条即可自动填入 URL 和 Method;
(URL 填接口地址包含的"关键字"即可,子串匹配,如 /api/getDetail)
- 填入出参 JSON,选择模式,点"添加";
- 触发该接口(无需刷新页面,规则实时生效),页面拿到的即为修改后的出参。
【模式一:替换(replace) —— 完全伪造整个出参】
- 效果:不再依赖真实响应,接口被拦截后直接返回你填写的 JSON,HTTP 状态码固定 200;
- 场景:接口报错/无权限/依赖其他服务时,伪造一份完整可用数据;
- 填写内容:完整的出参 JSON。
- 示例:填 {"code":200,"msg":"success","data":{"name":"张三","score":100}}
→ 页面收到 {"code":200,"msg":"success","data":{"name":"张三","score":100}}
(真实接口出参是什么、成功与否都不影响结果)
【模式二:合并(merge) —— 在真实出参基础上只改指定字段】
- 效果:真实请求照常发出,拿到真实出参后,把"你填的字段"深合并覆盖进去,其余字段保留;
- 合并规则:对象递归合并;数组直接整体替换;基础类型(字符串/数字/布尔/null)直接覆盖;
- 场景:只改某几个字段做测试,其余真实字段保持不变;
- 填写内容:只需要填"要改的那部分" JSON。
- 示例:真实出参 {"code":200,"data":{"name":"李四","age":20,"list":[1,2,3]}}
填 {"data":{"name":"张三","list":[9]}}
→ 页面得到 {"code":200,"data":{"name":"张三","age":20,"list":[9]}}
(age 保留真实值;list 数组被整体替换为 [9])
【注意事项】
- 修改后必须刷新页面重新触发接口(脚本在 document-start 注入,页面加载前就要生效);
- 规则保存在 Tampermonkey 脚本存储中(key: mock_rules_v1),全局共享、持久化,不随页面丢失;
- XHR 的 responseType 为 blob/arraybuffer 等非文本类型时不支持 merge 模式;
- 面板中可勾选启用/禁用单条规则,"改参"按钮可临时修改出参 JSON。
=====================================================================
