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

charles老是退出 charles退出后电脑无法上网_数据

(2)在对应的域名处右击「breakpoints」

(3)刷新这个页面,就会通过刚才打断点的那个域名来请求数据,就会被断点拦住
点击「edit request」——「json text」——「execute」

注:修改抓包的目标 *443是全部

charles老是退出 charles退出后电脑无法上网_抓包_02

4、使用Charles进行弱网测试

适用PC端和移动端

1.以charles 4.5.6版本为例,打开Proxy->Throttle Settings

charles老是退出 charles退出后电脑无法上网_网络请求_03


2.Throttle Settings界面配置参数:

charles老是退出 charles退出后电脑无法上网_charles老是退出_04


Throttle preset有Charles常用的网络设置模拟的数据,根据需要自己选择即可,从上到下网速依次提升

charles老是退出 charles退出后电脑无法上网_网络请求_05

配置参数:

Bandwidth —— 带宽,即上行、下行数据传输速度

Utilisation —— 带宽可用率,大部分modern是100%

Round-trip latency —— 第一个请求的时延,单位是ms。

MTU —— 最大传输单元,即TCP包的最大size,可以更真实模拟TCP层,每次传输的分包情况。

Releability —— 指连接的可靠性。这里指的是10kb的可靠率。用于模拟网络不稳定。

Stability —— 连接稳定性,也会影响带宽可用性。用于模拟移动网络,移动网络连接一般不可靠。


3、配置成功图标

charles老是退出 charles退出后电脑无法上网_数据_06


也可以用过Chrome自带的开发者工具进行弱网测试

charles老是退出 charles退出后电脑无法上网_数据_07