news 2026/6/30 23:21:40

移动端 App 测试入门(3)----Charles使用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
移动端 App 测试入门(3)----Charles使用

1. 什么是Charles

Charles(俗称青花瓷)是一款跨平台 HTTP/HTTPS 代理抓包调试工具,支持 Windows、macOS、Linux,是前端、移动端、测试工程师最常用的接口调试工具。
本质是本地代理服务器(默认监听 8888 端口),专门监控、拦截、修改电脑 / 手机 / 小程序所有网络请求,可完整解析加密 HTTPS 流量,相比 Fiddler 更适配 Mac、移动端抓包,界面直观易用。

2. Charles工作原理(中间人 MITM 代理)

2.1 基础 HTTP 抓包流程(明文)

  1. 电脑 / 手机配置代理:IP 为电脑本机 IP,端口 8888,所有网络流量强制走 Charles;
  2. 客户端(浏览器 / App)发请求 → 先到达 Charles;
  3. Charles 复制记录完整请求(URL、Header、参数、Cookie),再转发给真实服务器;
  4. 服务器返回响应 → 先到 Charles,记录响应体、状态码;
  5. Charles 把数据原样返回给客户端。 数据流:客户端 ↔ Charles代理 ↔ 远程服务端

2.2 HTTPS 解密核心原理(中间人机制)

HTTPS 默认端到端加密,Charles 靠自签根证书实现解密,分两条加密链路:

  1. Charles 向客户端出示Charles 根证书,和手机 / 电脑建立第一条 SSL 加密通道;
  2. Charles 再用正常证书和目标服务器建立第二条 SSL 加密通道;
  3. Charles 在中间完成解密→查看 / 修改→重新加密转发
  4. 前提:客户端必须手动安装并信任 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. 弱网配置

配置位置:

配置面板:

参数说明:

  1. 带宽 (kbps)
    1. 单位:千比特每秒(注意和 KB/s 区分:1 KB/s = 8 kbps)
    2. 下载:模拟服务器传给客户端的最大下行速度,数值越小网速越慢;
    3. 上传:模拟客户端发给服务器的最大上行速度; 示例图中 57.6kbps 下载、33.6kbps 上传,是老式拨号 Modem 极低网速。
  2. 利用率 (%):取值 0~100 表示实际占用带宽的比例,不是跑满你设置的带宽上限。 例:带宽设 1000kbps,利用率 70% → 实际可用带宽只有 700kbps; 用来模拟网络拥堵、带宽被其他程序抢占的场景。
  3. 往返延迟 (ms):客户端发请求到服务器、再收到响应的来回基础延迟。250ms 属于偏高延迟(4G 一般几十 ms,2G / 弱网常 200~800ms);数值越大,接口加载、页面响应越卡顿,模拟远距离服务器、基站信号差。
  4. MTU (bytes) 最大传输单元:单条网络数据包最大字节大小。576:老式拨号网络标准小包;宽带一般 1500;MTU 越小,数据包拆分越多,网络传输效率越低,容易出现分包超时、加载缓慢。
  5. 可靠性 (%):代表数据包不丢包的概率,100% = 0 丢包;90% = 10% 概率丢包;丢包后会触发重传,页面 / 接口明显卡顿、加载失败、图片裂图;测试弱网下接口重试、断线重连逻辑必调这个参数。
  6. 稳定性 (%):控制延迟、带宽是否平稳,100% 代表完全稳定无波动;
    数值越低,网络抖动越大:延迟忽高忽低、网速忽快忽慢,模拟地铁 / 电梯里信号跳变场景。
  7. 不稳定质量 (%)(左右两框:下载 / 上传)配合「稳定性」使用,定义抖动幅度上限:例:稳定性 50%、不稳定质量 80% → 延迟 / 带宽会在基准值 ±80% 范围内剧烈浮动;用来模拟信号时好时坏、网速跳变的真实手机移动网络。

补充使用场景总结

  • 模拟 2G / 拨号极低网速:调小下载 / 上传带宽;
  • 模拟跨地域高延迟接口:增大往返延迟 ms;
  • 模拟网络丢包闪退 / 加载失败:降低可靠性(<100%);
  • 模拟地铁信号抖动:降低稳定性 + 调高不稳定质量;
  • 只针对单个接口弱网:勾选「仅针对所选 hosts」,添加目标域名。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/30 23:20:25

深度解析FAE放射组学分析工具:医学影像数据挖掘的完全攻略

深度解析FAE放射组学分析工具&#xff1a;医学影像数据挖掘的完全攻略 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE 在医学影像研究领域&#xff0c;放射组学分析已成为连接影像特征与临床诊断的关键桥梁。FAE&#xff08;…

作者头像 李华
网站建设 2026/6/30 23:13:21

第三篇:新大陆的轮廓:“数据不动,能力流动”的哲学与架构原则

控制面与数据面彻底分离&#xff0c;开启企业数字化的新范式 一、一个反直觉的断言 “未来最强大的企业&#xff0c;不是囤积最多数据的企业&#xff0c;而是‘能力’能触达最广数据的企业。” 这句话听起来反直觉。过去二十年&#xff0c;企业软件行业的核心信条是&#xf…

作者头像 李华
网站建设 2026/6/30 23:12:11

实测有效|OpenClaw 闪退卡顿、网关异常根治教程

OpenClaw&#xff08;因其独特的小龙虾图标被用户昵称为"小龙虾"&#xff09;是GitHub上备受欢迎的开源本地AI助手&#xff0c;目前已获得超过28万星标。它能自动执行电脑操作、批量处理文档并实现浏览器自动化&#xff0c;轻松应对各类办公自动化需求&#xff0c;用…

作者头像 李华
网站建设 2026/6/30 23:10:23

NVMe SSD 性能优化:从队列深度到写入放大,存储引擎的硬件极限调优

NVMe SSD 性能优化&#xff1a;从队列深度到写入放大&#xff0c;存储引擎的硬件极限调优 一、SATA SSD 到 NVMe 的性能鸿沟&#xff1a;协议栈与物理通道的根本差异 在存储系统的性能调优中&#xff0c;硬件升级往往被视为最直接的加速手段。但从 SATA SSD 迁移到 NVMe SSD 后…

作者头像 李华
网站建设 2026/6/30 23:07:41

动态配置热更新无重启实现

摘要代拍系统资费、页面配置、风控阈值、第三方接口密钥均存储动态配置&#xff0c;传统修改配置需重启服务&#xff0c;会造成业务短暂中断。本文基于 Spring 事件监听 Redis 缓存实现配置热更新&#xff0c;修改后台参数后服务无需重启即时生效&#xff0c;附带监听核心代码…

作者头像 李华
网站建设 2026/6/30 23:00:37

RNA农药:狼真的来了吗?一个老兵的务实判断

2022年&#xff0c;美国有家叫GreenLight Biosciences的公司风光无限。它以15亿美元估值登陆纳斯达克&#xff0c;号称"RNA农药的特斯拉"。华尔街的分析师们兴奋地写着报告&#xff0c;说RNA农药将彻底改变农业。18个月后&#xff0c;这家公司以4550万美元私有化。跌…

作者头像 李华