Charles简介
基于Http协议的代理服务器,通过成为电脑或浏览器的代理,然后截取请求和请求结果达到分析抓包的目的(跨平台)
- 分析前后端的问题
- 模拟弱网测试环境
- 使用Charles的断点构建异常的测试场景
工作原理:
前置步骤:
- 需要运行Charles并配置代理
- 在客户端上面需要配置代理
步骤
- 由客户端发送请求
- charles接收再发送给服务器
- 服务端返回请求结果给Charles
- 由Charles转发给客户端
作用:
- 支持HTTP及HTTPS代理
- 支持流量控制
- 支持接口并发请求
- 支持重发网络请求
- 支持断点调试
优势(对比Fiddler)
- 支持Linux、MacOS
- 支持按域名和接口查看报文
- 支持反向代理
- 网络限速可选择网络类型
- 可以解析AMF协议
Charles组件
主界面
主导航栏
请求栏
Charles使用
将Charles设置成代理服务器
设置 SSL Proxying,抓取Https的请求信息
443端口即网页浏览端口,主要是用于HTTPS服务
截取移动设备上的网络请求包
Proxy -> Proxy Settings 默认端口是8888,可以根据实际情况进行修改。
查看本机IP地址
配置手机端IP地址
Charles端允许移动端访问
此时,打开要调试的APP,请求就会先发送到Charles,然后Charles会先验证是否允许访问。
当点击允许(Allow)后,可以在Proxy -> Access Control Settings看到可以访问此代理服务器列表
可以看到手机APP端的请求
可以看到喵街相关请求
喵街的mtop接口都在//asc这个请求下边,所以可以在Fitter里输入asc过滤一下,如图所示。
模拟慢速网络
有时候在测试的过程中可能需要模拟一下网络较慢的情况,这时候Charles可以配置网速。
路径:Proxy->Throttle Setting,然后选择Enable Throttling,在Throttle Preset下选择网络类型即可。
修改网络请求
有时为了调试服务器的接口,可能需要反复尝试不同参数的网络请求,Charles 可以方便地提供网络请求的修改和重发功能。只需要选中以往的网络请求,工具栏中点击 “”, 即可创建一个可编辑的网络请求。
使用七:给服务器做压力测试
Charles 的 Repeat 功能可以用来简单地测试服务器的并发处理能力。
方法:在想打压的网络请求上(POST 或 GET 请求均可)右击,然后选择 「Repeat Advanced」菜单项。
断点
在Charles中发起一个请求的时候,我们是可以给某个请求打一个断点,然后来观察或者修改请求或者响应的内容,但是在这过程中要注意请求的超时时间。
方法:要针对某一个请求设置断点,只需要在这个请求网址右击选择Breakpoints,然后点击断点按钮,就可给某个请求添加一个断点了。
再次发起接口请求,此时会弹出下面的对话框;
点击【Edit Request】,修改返回的报文;
点击底部的【Execute】将修改后的报文返回;
修改Response
Charles实操:blog.csdn.net/shuang_waiw…