原文参考:https://www.cnblogs.com/TingyunAPM/p/5445476.html
Charles是一款抓包修改工具,相比起TcpDump,charles具有界面简单直观,易于上手,数据请求控制容易,修改简单,抓取数据的开始暂停方便等等优势!前面介绍了如何使用TcpDump抓包,下面给大家介绍一下Charles的使用。
Charles抓包
Charles是一个HTTP代理服务器/HTTP监视器/反转代理服务器。它允许一个开发者查看所有连接互联网的HTTP通信。这些包括request、response现HTTP headers(包含cookies与caching信息)。
1)下载Charles
http://www.charlesproxy.com/
2)安装Charles
下载完毕之后,直接进行安装即可正常使用
(ps:不注册的话,每次使用30分钟,工具就会自动关闭)。
5.667.png
2、使用Charles进行抓包
1)Http抓包
6.777.png
i.打开Charles抓包工具
8.999.png
ii.打开网络偏好设置查看本机IP地址为:10.1.1.139
注:Android 设备需要与PC连接同一网段
90.png
iii.连接同一WiFi后设置本机代理
98.png
iv.这里的IP地址为:10.1.1.139;端口号默认为:8888
97.png
v.在Charles上查看即可
2)Https抓包(中间人)
a)下载Charles证书
如果要查看Https的数据需要安装Charles的证书
下载地址: http://www.charlesproxy.com/assets/legacy-ssl/charles.crt
b)安装Charles证书
将下载完成的charles.crt证书push到Android设备上(也可用常用工具)
$ adb push charles.crt /sdcard/
77.png
i.进入设置à安全à从手机存储卡安装证书
88.png
ii.找到charles.crt点击安装
776.png
iii.输入证书名称为:charles
注:点击确认后需要设置手机解锁密码
55.png
iv.安装成功后即可通过Charles查看Https的数据了
c)添加需要查看的Https地址
44.png
i.点击ProxyàSSL Proxying Settings…
33.png
ii.在SSL Proxying中点击Add添加Https域名
221.png
iii.可在charles中查找需要查看的Https域名复制到Host中点击Ok即可
1233.png
iv.配置完成后重新访问Https域名,即可查看Https数据
3、使用Charles模拟弱网环境
测试过程中经常需要模拟网络环境,那么如何通过Charles来模拟弱网呢?
455.png
i.选择ProxyàThrottle Setting…
56.png
ii.勾选Enable Throttle并选择需要设置的网络环境即可
4、使用Charles设置断点
Charles能在网络访问过程中设置断点,对于开发者和测试人员来说,堪称神器。它能够断到发送请求前(篡改Request)和请求后(篡改Response)
1)使用Breakpoint Settings设置断点
333.png
555.png
2)选中域名插入断点
343.png
i.右击选中需要修改的域名,点击Breakpoints
2233.png
ii.重新访问该域名,选择Edit Request进入修改页面
112.png
注:Charles能够修改Request的:URL、Headers、Text、Raw;
以及Response的:Headers、Set Cookie、Text、Html、Raw;
这里以Request的headers参数为例进行修改
11222.png
iii.这里查看原Headers携带参数为:{NBSHeaderTest1,NBSApp;b,NBSApp}
现在通过断点方式修改为:{NBSHeaderTest1,TingyunTest}
667.png
iv.修改完毕后点击Execute查看Request中的Headers已经修改为NBSHeaderTest1 TingyunTest
5、使用repeat测试
在Charles中可以通过repeat和repeat Advances来重复发送请求
445.png
repeat Advances可以自定义重复次数和重复间隔