复现一个 API bug 通常意味着
缓慢的接口、格式错误的错误响应体、两次调用之间的竞态问题——这些都很难在真实服务器上按需触发。
适合正在构建或测试 API 客户端(移动应用、前端、CLI、CI 任务)的后端与全栈工程师——他们需要查看并控制线路上真实的字节内容,而不仅仅是 SDK 返回的响应。
Busymate 的 proxy-server 位于你的客户端与真实 API 之间。每个请求都会被实时捕获,而在 iOS 和 Chrome 抓包中运行的同一套阻止/模拟/丢弃规则引擎在这里同样适用——因此你可以用预设响应回答一个真实请求,或者干脆丢弃它,而完全不需要触碰后端。
一个 PAC 网址,
无需 SDK,无需安装代理程序——任何能指向代理的客户端都已经完成集成。
在线路层模拟、拦截或丢弃
使用直接运行在代理内部的规则,用你自己的状态码、响应头和响应体来回应匹配的请求——或直接丢弃它——所有这些都发生在请求真正到达 API 之前。
断点、编辑、重发
在请求进行中暂停,手动编辑原始 HTTP,然后继续或重发——无需写一行测试代码即可复现竞态问题或格式错误的负载。
导出为 HAR,或通过 REST 访问
将精确的交换过程导出为 HAR 文件供队友或问题报告使用,或通过基于 PostgREST 的简单 REST API 访问同样的抓包数据——两种方式都无需 SDK。
- Proxy
- Dashboard
- REST
- MCP
从不稳定的客户端到
两端代码都无需修改。
- 01
将客户端指向代理
从这一个 PAC 自动配置网址来配置客户端——无论是手机、浏览器、后端服务还是 CI 任务。流量会立即开始传输。
- 02
复现故障
模拟该接口返回你需要的异常响应,或设置断点在请求继续之前手动编辑真实的请求或响应。
- 03
导出或查询结果
将交换记录导出为 HAR 附加到 bug 报告,或通过 REST API 从你的测试套件中拉取同样的抓包条目。
它如何工作:
一个代理服务器位于你的客户端和真实 API 之间;规则就在它内部运行。
- 01
把客户端指向你的代理
每台设备都有自己的代理身份和一个代理自动配置 URL。把这个 URL 粘贴到手机的 Wi-Fi 设置、浏览器配置文件,或后端、CI 任务读取的 HTTP 代理变量中,它的请求就会立即出现在仪表盘的流中。
- 02
编写规则,或暂停请求
打开一条记录,选择下一次应该发生什么:用你自己的状态码、响应头和响应体回应请求,丢弃它,或设置断点让下一个匹配的请求在途中暂停。手动编辑原始请求或响应,然后继续或重新发送。
- 03
把这次交互交给别人
把请求和响应导出为 HAR 文件用于错误报告,或在测试套件中通过 REST API 读取同样的捕获记录。两者携带的都是线路上传输的真实字节,而不是 SDK 的解读。
把客户端指向代理之前,
我的客户端需要 SDK 或改代码吗?
不需要。任何能指向 HTTP 代理的东西都已经集成好了——手机、浏览器、后端服务、CI 任务。代理负责捕获和规则;你的客户端继续与它以为的真实 API 对话。
能只模拟一个端点,其余保持真实吗?
可以。规则按主机和路径模式匹配,所以一个端点可以返回预设的 500,而其他所有请求原样透传到真实后端。
断点会阻塞其他流量吗?
不会。只有匹配的请求会暂停;其他一切照常流动。准备好后继续、编辑或重新发送,客户端看到的结果就像服务器正常应答一样。
我的测试能读取捕获的流量吗?
可以。捕获的记录可通过一个简单的 REST API 获取,因此集成测试可以断言客户端实际发送了什么,而不是 mock 预期的内容。