charles-青花瓷
介绍
它是一款基于HTTP协议的代理服务器,通过成为电脑或者浏览器的代理,然后截取请求和请求结果达到分析抓包的目的。特点:跨平台,半免费
工作原理:
-
用途
1.分析前后端的问题(判断是前端还是后端出现了问题)
2.用来模拟弱网测试环境
3.用断点构建异常的测试场景
- 支持HTTP及HTTPS代理
- 支持流量控制
- 支持接口并发请求
- 支持重发网络请求
- 支持断点调试
前置步骤:
1、需要运行Charles并配置代理
2、在客户端上面需要配置代理
步骤:
1、由客户端发送请求
2、Charles接收 再发送给服务端
3、服务端返回请求结果给Charles
4、由Charles转发给客户端
对比Fiddler的优点:
- Charles能够支持linux、MacOs
- Charles支持按域名和按接口查看报文,简洁明了
- Charles支持反向代理
- Charles网络限速可选择网络类型
- Charles可以解析AMF协议
使用
组件页面介绍
主导航介绍:
请求栏介绍:
在这里插入图片描述
请求数据栏介绍:
Charles代理设置
Charles访问控制
设置可以访问的ip,下面那个有对钩的选项选中表明没添加的ip在访问时会弹出询问框
客户端-windows代理设置
1、在Chrome浏览器中输入Chrome://setting
2、在搜索框中输入“代理”
3、点击“打开您计算机的代理设置“
4、在手动设置代理中开启代理
5、在地址输入框中输入Charles的IP地址以及端口
6、点击“保存”,关闭页面。
客户端-MacOS代理设置
第一步:
第二步:
第三步:
客户端-MacOS快捷代理设置
客户-IOS手机代理设置
1、在I0S手机中选择“设置”-“无线局域网”
2、点击已连接的无线网络名称
3、在HTTP代理的配置代理中选择“手动”
4、输入服务器IP地址及端点,点击“存储”
客户端-Android手机代理设置
1、在Android手机中选择“设置”-“WLAN”
2、长按已连接的无线网络名称,点击“修改网络”
3、勾选“显示高级选项”
4、在代理选择项中选择“手功’
5、输入服务器IP地址及端口,点击“存储”
应用
抓包分析问题
当客户端请求服务端的时候,获取到请求的http包,可能会出现问题?这两个问题可能是前端的问题也有可能是后端的问题!!
例如:
抓包分析实现的步骤:
这是后台响应回来的错误信息,说明是后台的原因;但是后台只响应了一条信息,而前端页面却显示两条错误信息,说明前端页面处理异常的时候逻辑有问题;所以说前后端都有问题!!
Https抓包
使用charles抓取Https请求报文的时候,报文会出现乱码,解决办法是需要安装SSL证书
Windows证书配置
第一步:
第二步:
第三步:
第四步:
第五步:
第六步:
最后提示:
Charles Https代理配置
步骤一:在Charles窗 口中点击菜单“proxy” -> “SSL proxying setting’
步骤二:在打开的设置窗口中勾选“Enable SSL Proying’
步骤三:然后点击include下方的Add,2个输入框第一个不填,第二个填星号步骤四:点击“OK”。
MacOS证书配置
第一步:
第二步:
第三步:
第四步:
配置完成后,就不会出现乱码
IOS证书配置
第一步:设置好IOS手机代理
第二步:
第三步:
第四步:
第五步:
第六步:
第七步:
第八步:
配置成功
Charles流量配置
步骤一:在Charles窗 口中点击菜单“Proxy" ->“Throttle Setting”
步骤二:在打开的设置窗口中勾选“Enable Throttling’
步骤三:在“Throttle preset”下拉框中选择对应的网络类型
步骤四:点击“OK’
弱网测试的实例
流量配置之前:
流量配置之后:
结果分析:
Charles断点配置
作用:用来构建异常的测试场景
1、右击接口链接,选择“Breakpoints”
2、在浏览器刷新对应接口的页面
3、此时会自动跳转到Charles并显示出接口请求信息
4、点击“Edit Request”,修改请求的信息,点击“Execute“
5、点击“Edit Response”
6、在数据格式栏中选择合适的显示格式,比如“Json”
7、修改对应的数据,点击“Execute ”
8、回到浏览器查看数据应该为修改之后的Response的信息
断点调试实例
第一步:开启断点调试
第二步:
第三步:
返回给页面空字符串
第四步: