最近几年一直在使用charles抓取移动端报文,今天来总结一下平时使用的功能。
安装
官网地址为:https://www.charlesproxy.com/,由于是付费软件,具体安装过程就不详细说了。
连接手机
1、手机和电脑连接同一个Wi-Fi
2、启动charles,点击Help–Local IP Address查看本机IP地址
3、打开手机无线局域网设置,配置代理信息。(不同的手机设置界面也各不相同,iPhone一般点击Wi-Fi后面的按钮,安卓一般长按后点击高级网络设置)
4、手机上配置好代理信息以后点击存储,等待几秒以后电脑上会显示如下弹窗,点击Allow。
5、启动需要抓包的APP获取网络数据,只抓取HTTP报文的话,到这一步就完成了
抓取HTTPS报文
1、安装根证书:菜单栏选择 Help -> SSL Proxying -> Install Charles Root Certificate
2、信任根证书
3、启动手机浏览器,输入“chls.pro/ssl”,下载证书并安装。
安卓手机一般要求设置手势密码。
iPhone安装完证书以后需要到设置–通用–关于本机–证书信任设置中打开开关。
4、设置完成以后还是有提示信息:SSL Proxying not enabled for this host: enable in Proxy Settings, SSL locations
解决方法是,打开proxy中的SSL Proxying setting,添加host
5、一般到这一步就能抓包成功了,如果还是不行,可以继续查看Notes中的提示信息,在网上搜索解决。
查看抓包数据
charles有两种方式查看报文,一种是Structure按照域名分类,另外一种Sequence按照时间排序。
需要查看某个报文的详细信息,可以点击报文,查看contents。不同类型的报文数据结构不一样。
过滤网络请求
手机上的网络请求一般非常多,而我们只需要查看其中一小部分就行,为了避免每次都在海量的报文中寻找,可以设置过滤。
1、菜单栏选择 “Proxy”->”Recording Settings”
2、然后选择 Include
3、点击Add,将需要查看的host和端口号添加到列表中即可。
设置弱网
移动端需要测试各种复杂的网络环境,弱网可以去网络信号不好的地方,也可以直接在charles上设置
1、菜单栏选择Proxy—Throttle Setting
2、勾选Enable Throttling
3、如果有特殊要求,可以在列表中自行设置
设置转发Map Remote
产品还没有上线的时候,通常正式环境没有数据,需要获取测试环境数据。这时候可以在charles上设置转发,将A服务器的请求转到B服务器。
1、菜单栏点击Tools—Map Remote
2、勾选Enable Map Remote
3、添加服务器设置
返回本地文件数据作为响应Map Local
服务器接口还没有开发完成,或者数据有问题的时候,可以将本地文件作为响应值传给客户端。
1、菜单栏点击Tools—Map Local
2、勾选Enable Map Local
3、设置转发内容
重复发送请求
1、选中一个请求,右键点击选中Repeat
2、也可以选择Repeat Advanced,可以设置并发线程数和测试次数
这个功能可以用来做简单的压力测试,不过还是建议使用更为专业的jmeter