Charles是一款可以代理调试的工具,适用于Mac,Windows系统设备可以使用Fiddler。使用Charles工具可以更方便地调试请求:

1.可获取手机上的请求
2.可模拟慢速
3.可修改网络请求内容
4.可修改服务器返回的内容

接下来,我将从以上几个方面去总结Charles的使用。

设置系统代理

将Charles设置为系统代理才可以监控请求,所以使用Charles的第一步是设置为系统代理,步骤如下:

1.选择左上角“Proxy -> macOS Proxy”,开启macOS Proxy。

2.在“系统偏好设置 -> 网络 -> 高级 -> 代理”,选择如下:

注意:自动代理配置选项不能选中哦,否则检测不到请求

操作完之后就可以在Charles主页看到请求。

获取手机上的请求

有时想要手机设备上进行一些操作,需要调试查看服务器返回的数据,Charles在此提供了大大的便利。

1.打开Charles的代理功能

(1) 选择左上角“Proxy -> Proxy settings”

(2) 勾选“Enable transparent HTTP proxing”,Port端口填8888

(3) 设置SSL Proxying
选择“Proxy -> SSL Proxing Settings -> add”

2.抓https请求,需安装Charles根证书

(1)选择左上角“help -> SSL Proxing -> Install Charles Root Certificate”

(2) 点击添加

(3) 在钥匙串访问中找到Charles Proxy CA,选中双击

(4) 点击信任,展示内容,选择始终信任

安装完成。

3.手机设置代理

(1) 首先需要找到电脑的IP地址,在“系统偏好设置 -> 网络”可以查看得到IP地址。

(2) 在手机“设置 -> Wi-Fi”找到跟电脑相同域的wifi,点击该wifi进入wifi详情页,点击Configure Proxy

(3) 在Configure Proxy中,在Server填入电脑的IP地址,Port为Charles设置的代理端口。

(4) 此时Charles弹出手机连接信号,选择Alloy。

(5) 在手机浏览器上访问地址:http://chls.pro/ssl,打开安装证书页面,点击Allow。

(6) 安装证书。

(7) 完成安装

(8) 证书任性设置

在“设置 -> 通用 -> 证书信任设置”里勾选安装的证书:

手机浏览页面,即可在Charles看到请求。

模拟慢速环境

有时项目需要在慢速情况下进行对应的操作,那么可以通过Charles的Throttle设置模拟慢速环境。

1.在左上角选择“Proxy -> Throttle settings”

2.选中Enable Throttling,在下面的配置中填入需要的参数,选择ok

3.手机重新刷新页面,会发现网络速度降低了,完成配置。

修改网络请求内容

有时为了测试服务器接口的不同参数情况下的请求,那么可以通过Charles修改接口的请求并重新请求。

在需要修改的请求上右击,选择“Compose”,即可进入该请求的编辑页。可以修改该请求的请求方式、请求地址、协议等,修改完成后点击“Execute”执行,返回结果。

修改服务器返回的内容

在项目中,较常使用Map Local来修改服务器返回的内容,Map Local可以将网络请求重定向到本地文件,主要用途如下:

1.直接修改某个接口返回的内容,比如可以模拟接口异常。
2.将线上html、css、js等文件重定向到本地进行调试。

直接选择接口或文件右击,选择Map Local,打开Edit Mapping页,在Local path选中需要模拟接口异常的json文件或需要重定向的静态文件,点击ok即可,重新刷新页面。

模拟网络延迟

项目中,可能有这样的需求,比如网络延迟10s要弹出网络延迟的toast,那么Charles可以使用Breakpoints模拟网络延迟的环境来测试页面。

Breakpoints类似断点,可以在某网络请求时,截断该请求,可修改请求的内容,在截断过程中,请求还在进行,当请求超过10s时,达到前端设置的10s延迟时间,导致页面请求超时,即可模拟网络延迟。

总结

Charles的功能强大,在我们开发和测试阶段提供很大的帮忙,我会继续挖掘哒!!