一、charles简介
charles是一款抓包工具,即可抓取PC端,也可以抓取移动端,支持http/https/http2/websocket等协议,可用于接口调试和系统应用分析,安装证书后,可以捕获和修改网络请求。
对于测试和开发来说,常用的主要功能有:
1、抓包,对网络请求进行分析(解析查看请求头,响应头,cookie数据,支持json和xml内容解析)
2、修改网络请求参数或者返回参数
3、支持模拟弱网情况
与fiddler的对比:
1、charles 能够支持mac系统和linux系统的请求
2、charles 支持域名和接口查看报文
3、charles支持反向代理
4、charles可以进行网络类型的选择
5、charles可以解析AMF协议
二、charles的工作原理
通过代理转发客户端的请求,拦截服务器的响应,处理后返回给真实客户端
所以通过charles的工作原理我们知道,需要进行客户端代理设置。
三、charles的安装配置
1、charles环境配置:
(a)查看charles的ip和端口,用来进行客户端代理时设置
如果想要修改端口,可以在proxy-》proxySettings 里面进行port的修改
(b)环境配置:
一般情况下,我们测试或者开发联通经常在测试环境下,所以这时候就需要进行相关地址的映射,所以就可以通过map Remote Settings的配置进行url地址的映射
一个完整的地址映射方式:有时候可以只写path,也可以全部都写
2、客户端代理设置
(a)PC端:
在浏览器设置中,找到代理设置,进行端口和ip的配置,一般服务器ip本地直接可以设置127.0.0.1,端口设置上charles的端口即可
(b)手机端:
确保手机网络和电脑网络连接同一个网络,然后在网络点击中点击高级设置,进行ip和端口的设置即可:
设置好环境,配置好代理,重启浏览器,就可以正常代理访问了。
四、charles 的页面功能介绍
1、页面分布:
2、主导航栏功能介绍:
3、组件介绍:
4、过滤的设置
设置1:在Filter中筛选,只显示包含筛选条件的请求
设置2:进入Proxy-Recoding Setting添加指定域名,
Include:包含,则只抓包指定的域名。
Exclude:排除,不显示指定的域名
重启后生效
设置3:对指定域名设置Focus
五、charles常用工具介绍
1、接口调试&前后端联调
开发者和测试,可以通过抓包查看请求参数是否正常,响应数据是否符合预期进行接口调试
另一方面在前后端联调时或者测试时发现页面展示不正确时也可以通过抓包的方式,分析输入和输出,从而定位问题是后端接口返回的问题还是前端展示的问题。
2、断点设置&mock数据
在测试中,经常会遇到特殊的场景无法构造到对应数据,这时候就可以通过修改后端接口的请求或者返回结果,来进行特殊场景的模拟,校验对应特殊场景接口和页面的展示是否正常
使用:Breakpoints 功能进行断点设置,从而进行请求和结果的修改
使用方式:
1、选中要打断点的请求,右击点击Breakpoints,并在proxy中进行设置断点形式(可以进行请求或者响应不同方式进行设置)
2、然后重新请求当前地址,charles会自动捕获对应请求,让用户进行修改,用户修改完,点击execute进行发送即可
(如果修改请求,那么系统就会用用户修改的请求参数去请求后端服务器,如果修改的返回,那么系统就会将用户修改的返回信息返回给客户端进行展示)
通过这种方式就可以模拟特殊场景下的场景测试。
3、安全测试-模拟攻击与测试
在我们测试中,我们也是需要考虑系统的安全性的,那么这时候就可以通过修改接口的请求参数,测试服务器对异常输入的处理能力,通常可以用来进行安全测试
修改请求依然使用的是Breakpoints的工具操作即可。
4、弱网模拟
在我们测试中,经常也是需要模拟系统在弱网情况下展示和操作是否正常,这时候就可以通过设置Throttle Settings 工具进行节流控制,从而模拟弱网情况
路径:proxy-》Throttle Settings
勾选enable trotting 说明针对全局域名进行限流设置,也可以进行单独的请求进行设置,这时候在onliy for selected hosts 中进行添加即可
限流设置参数信息:
Bandwidth-——带宽,上行下行数据传输速度,一般弱网上行:10 下行30;2g:(15,50);3g(384,2800)
utilisation——带宽可用率,大部分设置100%
round-trip latency——第一个请求的时延
MTU——最大传输但愿,即tcp包的最大size,可以更真实的模拟TCP层(默认不改)
Releablility——连接的可靠性,用于模拟网络不稳定性(如果上下行丢包率5%,可靠性95%)
Stability——连接稳定性,也会影响带宽可用性。用于模拟移动网络,移动网络连接一般不可靠
如果请求的参数设置可以直接在网上进行搜索,查看最新的设置数据即可。
5、清除缓存
在测试项目时,总是有缓存,清除缓存很麻烦或者不起作用,如何让请求没有缓存?
进入Tools-No Caching Settings勾选此选项后,H5中的前端文件就不会缓存
已经缓存了再勾选此选项是没用的,还是会读缓存的文件
以上就是charles的基本功能介绍和使用方式,希望能够帮助到大家