一、简介
Charles是一个HTTP代理服务器,HTTP监视器,反转代理服务器,当浏览器连接Charles的代理访问互联网时,Charles可以监控浏览器发送和接收的所有数据。它允许一个开发者查看所有连接互联网的HTTP通信,这些包括request, response和HTTP headers (包含cookies与caching信息)
二、下载安装
下载地址:https://www.charlesproxy.com/
获取charles激活码:https://www.zzzmode.com/mytools/charles/
三、配置抓取Https包
- 第一步:配置Charles,允许抓取https包 Proxy->SSL Proxying Settings…,勾选Enable SSL Proxying,Add一个locations,通过通配符* 抓取所有域名的https。(如果想只抓取某个域名的,设置具体域名的即可)
- 第二步:修改charles的proxy settings:选择“Proxy--Proxy Settings”,弹出proxy设置选项卡,勾选“Enabling transparent HTTP proxying”
- 第三步:
抓取PC端https配置
电脑本机安装证书:在顶部工具栏中选择“help--Install Charles CA SSL Certificate”;然后会弹出证书信息,选择安装证书,将证书存储改为:受信任的根证书颁发机构,接下来都点“下一步”,访问目标网页即可看到抓包接口数据了
抓取移动端https配置(IOS举例)
- 获取端口号、ip,再在手机端设置
手机上设置代理:设置—>无线网络,设置服务器ip和端口号
- 手机端安装证书
手机浏览器输入如图所示获取到的网址:http://chls.pro/ssl,访问后将证书成功安装到本机
注意!!!:安装成功后打开ios的证书信任设置:设置—通用—关于本机—证书信任设置(找到打开即可)
手机端请求接口,就可以在Charles里能抓到对应的接口数据了
四、常用功能
1、过滤网络请求
在日常工作中,需要针对特定的接口进行接口抓包,对于这种场景有两种方法:
方法一:在主界面底部的 Filter 栏中填入需要过滤出来的关键字。如:https://www.baidu.com/ 就会只抓取该接口域名相关的接口
方法二:在菜单栏选择 “Proxy”->”Recording Settings”,然后选择 Include 栏,填入需要监控的协议,主机地址,端口号,这样就可以只抓取目标网站的接口了
2.弱网测试
- 点击【Proxy】—>【Throttle Setting】—>勾选上【Enable Throttle】,也可以勾选【only for selected host 】 选择设置置顶的hosts进行网络限制
- 在【Throttle preset】选择常用的网络情况,也可以在【Bandwidth】设置自己需要的网络上传和下载速率
使用快捷键是一个形似一个乌龟的图标
3.断点篡改数据
在很多测试场景中,我们需要修改接口的请求参数或者返回参数进行测试,这个时候可以使用charles的断点功能进行数据篡改得到我们需要的数据:
点击【Proxy】—>【Breakoint Setting】—>【Enable Breakpoints】—>【Add】
在Edit Breakpoint页面填写你需要断点的接口信息,选择是对【request】还是【response】进行断点修改数据,也可以两者都勾选
在手机上重新对设置的相关接口进行请求,Charles 会自动进行拦截并跳转到请求数据修改页面;修改数据后点击执行【execute】
4.Repeat发送请求
经常性的测试人员发现了一个bug,开发需要我们重新请求一下接口方便他们日志定位分析时,我们就可以借助charles的重新发送请求功能
确定选中重新请求的接口,点击工具栏的【repeat seleted requests】
5.Compose编辑接口
在接口测试的时候,针对同一个接口需要发送不同的参数据进行请求,可以使用charles的compose功能
选中需要修改的请求,右键选择【Compose】后会多出一个笔的请求;修改请求数据后【Execute】执行
6.Rewrite重写
在进行前端页面测试时,我们需要对数据多行展示等效果进行查看时,可以用到rewrite功能;它可以实现mock和数据的解依赖;可以重写接口所有元素的内容,例如:header、host、url、path、query、param、response status、body
点击【Tools】—>【Rewrite】
进入【Rewrite Settings】页面—>勾选【Enable Rewrite】—>左侧Sets栏点击【Add】
在右侧Locations栏点击【Add】—>弹出Edit Location框,填入相关参数后点击【OK】
在右侧Rules栏点击【Add】—>弹出Rewrite Rule框,填入相关参数后点击【OK】
最后【OK】重新请求接口就可以看到页面效果了
7.压力测试Repeat Advance
选中需要进行测试的接口,右键选择【Repeat Advance】