1. 什么是CharlesCharles俗称青花瓷是一款跨平台 HTTP/HTTPS 代理抓包调试工具支持 Windows、macOS、Linux是前端、移动端、测试工程师最常用的接口调试工具。本质是本地代理服务器默认监听 8888 端口专门监控、拦截、修改电脑 / 手机 / 小程序所有网络请求可完整解析加密 HTTPS 流量相比 Fiddler 更适配 Mac、移动端抓包界面直观易用。2. Charles工作原理中间人 MITM 代理2.1 基础 HTTP 抓包流程明文电脑 / 手机配置代理IP 为电脑本机 IP端口 8888所有网络流量强制走 Charles客户端浏览器 / App发请求 → 先到达 CharlesCharles 复制记录完整请求URL、Header、参数、Cookie再转发给真实服务器服务器返回响应 → 先到 Charles记录响应体、状态码Charles 把数据原样返回给客户端。 数据流客户端 ↔ Charles代理 ↔ 远程服务端2.2 HTTPS 解密核心原理中间人机制HTTPS 默认端到端加密Charles 靠自签根证书实现解密分两条加密链路Charles 向客户端出示Charles 根证书和手机 / 电脑建立第一条 SSL 加密通道Charles 再用正常证书和目标服务器建立第二条 SSL 加密通道Charles 在中间完成解密→查看 / 修改→重新加密转发前提客户端必须手动安装并信任 Charles 根证书否则会报证书不安全、抓不到明文 HTTPS 内容。简单类比Charles 像中介客户端以为在直连服务器服务器以为在直连客户端所有对话中介都能看见、修改。3. 抓取http请求我们安装Charles后默认就会抓取我们电脑浏览器的所有http请求无需做任何配置如果要抓取App端的请求则需要进行如下设置先保证电脑和手机是使用同一个wifi打开手机的wifi点击修改网络添加如下代理信息注意这里的代理主机名是电脑的局域网ip可以通过ipconfg命令查询端口号8888对应的是Charles默认的代理端口号配置完成后即可抓取到4. 抓取https请求4.1 电脑端安装证书https请求是加密的我们需要安装证书才能看到https请求信息配置代理4.2 手机端安装证书给手机端也按照证书在手机浏览器访问charlesproxy.com/getssl或chls.pro/ssl会自动下载证书安装打开模拟器设置 → 安全 → 加密与凭据 →安装证书 → 从存储设备安装→ 选择下载的文件注意安卓7版本之后ssl协议不再信任用户凭证需要把证书安装到系统目录。我们直接通过文件管理器把我们安装的用户证书文件移动到系统证书目录下即可用户证书文件目录/data/misc/user/0/cacerts-added/系统证书文件目录/etc/security/cacerts/5. 弱网配置配置位置配置面板参数说明带宽 (kbps)单位千比特每秒注意和 KB/s 区分1 KB/s 8 kbps下载模拟服务器传给客户端的最大下行速度数值越小网速越慢上传模拟客户端发给服务器的最大上行速度 示例图中 57.6kbps 下载、33.6kbps 上传是老式拨号 Modem 极低网速。利用率 (%)取值 0~100 表示实际占用带宽的比例不是跑满你设置的带宽上限。 例带宽设 1000kbps利用率 70% → 实际可用带宽只有 700kbps 用来模拟网络拥堵、带宽被其他程序抢占的场景。往返延迟 (ms)客户端发请求到服务器、再收到响应的来回基础延迟。250ms 属于偏高延迟4G 一般几十 ms2G / 弱网常 200~800ms数值越大接口加载、页面响应越卡顿模拟远距离服务器、基站信号差。MTU (bytes) 最大传输单元单条网络数据包最大字节大小。576老式拨号网络标准小包宽带一般 1500MTU 越小数据包拆分越多网络传输效率越低容易出现分包超时、加载缓慢。可靠性 (%)代表数据包不丢包的概率100% 0 丢包90% 10% 概率丢包丢包后会触发重传页面 / 接口明显卡顿、加载失败、图片裂图测试弱网下接口重试、断线重连逻辑必调这个参数。稳定性 (%)控制延迟、带宽是否平稳100% 代表完全稳定无波动数值越低网络抖动越大延迟忽高忽低、网速忽快忽慢模拟地铁 / 电梯里信号跳变场景。不稳定质量 (%)左右两框下载 / 上传配合「稳定性」使用定义抖动幅度上限例稳定性 50%、不稳定质量 80% → 延迟 / 带宽会在基准值 ±80% 范围内剧烈浮动用来模拟信号时好时坏、网速跳变的真实手机移动网络。补充使用场景总结模拟 2G / 拨号极低网速调小下载 / 上传带宽模拟跨地域高延迟接口增大往返延迟 ms模拟网络丢包闪退 / 加载失败降低可靠性100%模拟地铁信号抖动降低稳定性 调高不稳定质量只针对单个接口弱网勾选「仅针对所选 hosts」添加目标域名。
移动端 App 测试入门(3)----Charles使用
1. 什么是CharlesCharles俗称青花瓷是一款跨平台 HTTP/HTTPS 代理抓包调试工具支持 Windows、macOS、Linux是前端、移动端、测试工程师最常用的接口调试工具。本质是本地代理服务器默认监听 8888 端口专门监控、拦截、修改电脑 / 手机 / 小程序所有网络请求可完整解析加密 HTTPS 流量相比 Fiddler 更适配 Mac、移动端抓包界面直观易用。2. Charles工作原理中间人 MITM 代理2.1 基础 HTTP 抓包流程明文电脑 / 手机配置代理IP 为电脑本机 IP端口 8888所有网络流量强制走 Charles客户端浏览器 / App发请求 → 先到达 CharlesCharles 复制记录完整请求URL、Header、参数、Cookie再转发给真实服务器服务器返回响应 → 先到 Charles记录响应体、状态码Charles 把数据原样返回给客户端。 数据流客户端 ↔ Charles代理 ↔ 远程服务端2.2 HTTPS 解密核心原理中间人机制HTTPS 默认端到端加密Charles 靠自签根证书实现解密分两条加密链路Charles 向客户端出示Charles 根证书和手机 / 电脑建立第一条 SSL 加密通道Charles 再用正常证书和目标服务器建立第二条 SSL 加密通道Charles 在中间完成解密→查看 / 修改→重新加密转发前提客户端必须手动安装并信任 Charles 根证书否则会报证书不安全、抓不到明文 HTTPS 内容。简单类比Charles 像中介客户端以为在直连服务器服务器以为在直连客户端所有对话中介都能看见、修改。3. 抓取http请求我们安装Charles后默认就会抓取我们电脑浏览器的所有http请求无需做任何配置如果要抓取App端的请求则需要进行如下设置先保证电脑和手机是使用同一个wifi打开手机的wifi点击修改网络添加如下代理信息注意这里的代理主机名是电脑的局域网ip可以通过ipconfg命令查询端口号8888对应的是Charles默认的代理端口号配置完成后即可抓取到4. 抓取https请求4.1 电脑端安装证书https请求是加密的我们需要安装证书才能看到https请求信息配置代理4.2 手机端安装证书给手机端也按照证书在手机浏览器访问charlesproxy.com/getssl或chls.pro/ssl会自动下载证书安装打开模拟器设置 → 安全 → 加密与凭据 →安装证书 → 从存储设备安装→ 选择下载的文件注意安卓7版本之后ssl协议不再信任用户凭证需要把证书安装到系统目录。我们直接通过文件管理器把我们安装的用户证书文件移动到系统证书目录下即可用户证书文件目录/data/misc/user/0/cacerts-added/系统证书文件目录/etc/security/cacerts/5. 弱网配置配置位置配置面板参数说明带宽 (kbps)单位千比特每秒注意和 KB/s 区分1 KB/s 8 kbps下载模拟服务器传给客户端的最大下行速度数值越小网速越慢上传模拟客户端发给服务器的最大上行速度 示例图中 57.6kbps 下载、33.6kbps 上传是老式拨号 Modem 极低网速。利用率 (%)取值 0~100 表示实际占用带宽的比例不是跑满你设置的带宽上限。 例带宽设 1000kbps利用率 70% → 实际可用带宽只有 700kbps 用来模拟网络拥堵、带宽被其他程序抢占的场景。往返延迟 (ms)客户端发请求到服务器、再收到响应的来回基础延迟。250ms 属于偏高延迟4G 一般几十 ms2G / 弱网常 200~800ms数值越大接口加载、页面响应越卡顿模拟远距离服务器、基站信号差。MTU (bytes) 最大传输单元单条网络数据包最大字节大小。576老式拨号网络标准小包宽带一般 1500MTU 越小数据包拆分越多网络传输效率越低容易出现分包超时、加载缓慢。可靠性 (%)代表数据包不丢包的概率100% 0 丢包90% 10% 概率丢包丢包后会触发重传页面 / 接口明显卡顿、加载失败、图片裂图测试弱网下接口重试、断线重连逻辑必调这个参数。稳定性 (%)控制延迟、带宽是否平稳100% 代表完全稳定无波动数值越低网络抖动越大延迟忽高忽低、网速忽快忽慢模拟地铁 / 电梯里信号跳变场景。不稳定质量 (%)左右两框下载 / 上传配合「稳定性」使用定义抖动幅度上限例稳定性 50%、不稳定质量 80% → 延迟 / 带宽会在基准值 ±80% 范围内剧烈浮动用来模拟信号时好时坏、网速跳变的真实手机移动网络。补充使用场景总结模拟 2G / 拨号极低网速调小下载 / 上传带宽模拟跨地域高延迟接口增大往返延迟 ms模拟网络丢包闪退 / 加载失败降低可靠性100%模拟地铁信号抖动降低稳定性 调高不稳定质量只针对单个接口弱网勾选「仅针对所选 hosts」添加目标域名。