目录
Charles 主要的功能
截取 Http 和 Https 网络封包。
支持重发网络请求,方便后端调试。
支持修改网络请求参数。
支持网络请求的截获并动态修改。
支持模拟慢速网络。
Charles操作步骤
(1)下载Charles
先安装配置好Java环境,官网下载安装Charles:https://www.charlesproxy.com/download/
(2)Charles代理设置
接下来打开Charles的代理设置:Proxy->Proxy Settings,设置一下端口号,默认的是8888,这个只要不和其他程序的冲突即可,并且勾选Enable transparent HTTP proxying。
(3)在手机设备、模拟器或者远程浏览器上设置代理,抓取手机设备上的请求包(手机和电脑必须在同一个局域网内,并关闭电脑防火墙、其他代理或者翻墙软件)
第一步:在手机wifi 上设置代理 -> 长按无线网络-->修改网络-->高级选项-->代理 手动-->手动输入输入IP、端口号
服务器IP:PC机器的IP
端口号:8888
(4) 安装证书
第三步:抓取https数据需要在手机上安装证书,HTTPS的抓包需要在HTTP抓包基础上再进行设置
如果我们需要在iOS或Android机器上截取 Https 协议的通讯内容,还需要在手机上安装相应的证书。
以下为在HTTP抓包基础上进行HTTP抓包的进一步设置步骤:
Help -> SSL proxying -> Install charles root certificate on a Mobile Device or remote browser…
出现弹窗得到地址chls.pro/ssl
在手机自带的系统浏览器输入地址chls.pro/ssl,出现证书安装页面,点击安装,手机设置有密码的输入密码进行安装。安装完证书后,就可以截取手机上的 Https 通讯内容了。不过同样需要注意,默认情况下 Charles 并不做截取,你还需要在要截取的网络请求上右击,选择 SSL proxy 菜单项。
注意2:iOS 10.3系统,需要在设置→通用→关于本机→证书信任设置里面启用完全信任Charles证书
Chales映射
Chales映射可以实现请求网址的转换
上面是源地址,下面是要映射到的目的地址:
Charles抓包工具断点修改返回内容mock数据测试
在测试过程中,往往需要让服务器返回指定的内容,测试一些特殊情况。
例如列表内容为空、数据异常的情况等。如果通过操作服务器配合构造相应的数据会比较麻烦,甚至不好构造数据。
此时,可以使用Charles的断点功能来达到我们的目标。
1、在structure窗口,在要打断点的数据右键选择“Breakpoints”
2、在对目标服务器进行访问,此时会跳转到Breakpoints TAB页面,如下图:
3、观察上面为修改请求,如果修改结果,点击"Execute",得到如下界面
可以在Edit Response中可以对服务器返回内容进行修改:
4、点击”Execute”进行提交即mock了内容。
注意:在mock结果的时候要注意时间,提前将需要mock的结果准备好,直接复制,否则容易超时,请求就会失败