Charles使用教程(工作中用到的总结,不全面)
1、Charles 的说明
Charles 其实是一款代理服务器,通过将自己设置成系统(电脑或者浏览器)的网络访问代理服务器,然后截取请求和请求结果达到分析抓包的目的。该软件是 Java 写的,能够在 Windows,Mac,Linux 上使用。安装 Charles 的时候要先装好 Java 环境。
Charles 的主要功能:
1、截取 http 和 https 网络封包
2、支持重发网络请求,方便后端调试
3、支持修改网络请求参数
4、支持网络请求的截获并动态修改
5、支持模拟慢速网络
2、Charles 与手机/电脑端的连接
使手机和电脑在一个局域网内,不一定非要一个 ip 段,只要是同一个 路由器下就可以了。
2.1Charles 与手机端的连接
- 打开 Charles ,Help→Local Ip Address 即可查看自己电脑的 ip 地址。
- 然后在手机端的wifi代理设置哪里进行相关的配置设置。
这里的代理服务器地址填写为电脑的 ip 地址,然后端口这里写 8888(这个是 charles 的默认设置),如果自己修改了就写成自己所修改的端口就可以了。点击Proxy——Proxy Settings——查看端口号 - 配置完成后,会看到一个 charles 与手机端的连接提示弹窗,选择 allow 即可。
- 手机端抓包 https
上述1、2步骤,只针对 http 请求。由于 http 协议的特殊性,所以要求电脑端和手机端都需要安装下证书,否则会看到返回的数据都是乱码的。(证书下载过程:省略,可百度)
2.2Charles 与电脑端的连接
由于 Charles 会自动配置浏览器和工具的代理设置,所以说打开工具就直接已经是抓包状态了。直接打开网页就可以了。
注意:1、Charles 支持抓取 http 、https 协议的请求,不支持 socket。网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个 socket;2、防火墙关掉
过滤请求
通常情况下,我们需要对网络请求进行过滤,只监控向指定目录服务器上发送的请求。对于这种需求,一下几种方法:
方法:在主界面的中部的 Filter 栏中填入需要过滤出来的关键字。例如我们的服务器地址是:www.baidu.com,那么只需要在 Filter 栏中填入 www.baidu.com 即可。
解决抓包 unknow 的方法
参考:https://www.jianshu.com/p/703998ae4e78
3、使用Charles进行数据mock的方式
3.1 Breakpoints——打断点
如果想要临时修改一次网络请求结果,当指定的网络请求发生时,Charles会截获此请求,然后在Charles中临时修改网络请求的返回内容。Charles可以断到请求前(Request)和请求后(Response)。
参考学习CSDN博客:
服务端没返回数据或数据不好造的情况下,就可以mock看前端展示
(1)勾选macOS Proxy
(2)在对应的域名处右击「breakpoints」
(3)刷新这个页面,就会通过刚才打断点的那个域名来请求数据,就会被断点拦住
点击「edit request」——「json text」——「execute」
注:修改抓包的目标 *443是全部
4、使用Charles进行弱网测试
适用PC端和移动端
1.以charles 4.5.6版本为例,打开Proxy->Throttle Settings
2.Throttle Settings界面配置参数:
Throttle preset有Charles常用的网络设置模拟的数据,根据需要自己选择即可,从上到下网速依次提升
配置参数:
Bandwidth —— 带宽,即上行、下行数据传输速度
Utilisation —— 带宽可用率,大部分modern是100%
Round-trip latency —— 第一个请求的时延,单位是ms。
MTU —— 最大传输单元,即TCP包的最大size,可以更真实模拟TCP层,每次传输的分包情况。
Releability —— 指连接的可靠性。这里指的是10kb的可靠率。用于模拟网络不稳定。
Stability —— 连接稳定性,也会影响带宽可用性。用于模拟移动网络,移动网络连接一般不可靠。
3、配置成功图标
也可以用过Chrome自带的开发者工具进行弱网测试