在前后端分离开发、接口测试或自动化测试过程中,我们经常需要对后端接口进行调试或模拟响应数据。Charles 是一款功能强大的 HTTP 代理抓包工具,支持断点调试和接口返回值修改功能。
接下来我们将详细介绍如何使用 Charles 的断点调试功能,来拦截并修改接口返回的数据,以满足接口测试、前端联调等场景需求。
🧰 一、准备工作(确保已完成)
在开始之前,请确认以下步骤已完成:
- ✅ 已安装 Charles(官网下载地址)
- ✅ 已配置浏览器或手机通过 Charles 代理上网
- ✅ 已安装 Charles 根证书并信任(支持 HTTPS 抓包)
- ✅ 可正常看到 Charles 中的请求列表
🔍 二、Charles 基础界面介绍
启动 Charles 后,你会看到如下主要区域:
- 左侧资源树:列出所有访问过的域名
- 中间请求列表:展示每个请求的 URL、状态码、耗时等信息
- 右侧详情面板:
- Summary:基础信息
- Request:请求头、请求体
- Response:响应头、响应体
🔁 三、使用断点调试(Breakpoints)模拟接口返回
Charles 提供了三种断点方式,分别用于拦截请求和响应:
- 修改请求参数模
- 拟服务端行为
- 修改接口返回内容(这里我们着重实现这个)
1、设置断点
- 右键点击该接口 → Breakpoints → 开启断点模式
- 此时,每次请求该接口时都会被 Charles 拦截。
2、发起接口请求
在浏览器或 App 中访问该接口,Charles 会弹出一个窗口,显示即将返回给客户端的响应内容,点击Execute(执行)。
3、修改接口返回值
切换到 Edit Response 标签页,找到 Response Body 内容(JSON Text)。
接口返回示例:
{
"code": 0,
"message": "success",
"data": {
"username": "xiaoming",
"age": 25
}
}
- 将 "age": 25 修改为 "age": 30 或任意你想要的数据结构。
- 你也可以直接粘贴一段完整的 JSON 数据来替换整个响应内容。
⚠️注意:使用Charles工具时,需要把Headers处的 Content-Length 给删掉,不然无法正常访问修改了返回值的接口
4、确认并放行
- 点击 Execute,Charles 将把修改后的数据返回给客户端。
- 你也可以点击 Cancel 放弃修改,或 Abort 终止请求。
✅ 四、总结
Charles 不仅是一个抓包工具,更是接口调试和模拟的利器。掌握其断点调试功能,可以大幅提升前后端协作效率,节省大量重复开发和测试时间。
无论你是做接口测试、前端开发还是自动化测试,Charles 都是你值得熟练使用的调试神器!