抓包分析与mock实战
Charles下载安装
官网下载安装:https://www.charlesproxy.com/
电脑证书配置
如果不配置证书,无法抓取https协议
-
配置证书:
1 - 打开Charles,在help - SSL Proxying - Install Charles Root Certificate
2 - 设置ssl:
-
如果勾选以下选项,那么所有经过电脑的网络都会被抓取
为了规避所有经过电脑都抓取数据的杂乱,使用以下方法
- 抓取浏览器的数据
在浏览器使用SwitchyOmega设置charles监听端口,下载地址:https://proxy-switchyomega.com/ (根据教程安装使用)
- 下载安装之后,点击 “选项” - 新建情景模式 - 代理协议选择http - 代理服务器选择 127.0.0.1
代理端口和Charles设置的代理端口一致
移动端代理配置
- 1 - 移动端需要与pc端处于同一网络(wifi)
- 2 - charles
- 3 - 移动端 修改网络(一般是长按已经链接的wifi),以下两个地址必须与charles一致
- 4 - 配置证书(与pc端一样,配置证书才能抓取到https)
打开移动端原生浏览器:chls.pro/ssl
5 - 注意:android6以上的系统 app默认不信任抓包证书,需要开发修改代码,大部分测试app安装包默认打开状态
抓包分析
- 应用场景:
- 解决移动端接口测试
- 解决接口测试过程中检查参数错误问题
接口分析
- 抓包正常请求信息
- 详细分析:(待更新)
- curl 命令发起的请求信息:
- curl --proxy http://127.0.0:8080 -X GET "http://www.baidu.com"
限速模拟(手机端测试app时使用)
- 1 - 开启模拟
2 - 右下角会出现以下标识
3 - 设置网速
mock
优点:
- 不依赖第三方数据
- 节省工作量
- 节省连调
使用场景:
- 1 - 前后端数据交互-前端数据展示
比如:查看数据边界值场景(超出长度或者股票因为数据变化引发的对应的颜色变化是否符合预期)
代理返回给客户端相应信息的时候篡改相应信息,查看客户端是否是我们期望的结果
- 2 - 模拟第三方响应(需开发配合)
因为某些第三方接口(征信系统、短信系统)会收取费用,会造成成本过高,所以在获取付费接口数据的时候需要开发设置走代理端口,征信系统会返回数据给代理,这时代理就可以篡改数据信息,从而提高测试效率
- 3 - 软硬件解耦(需开发配合)
因为公司硬件设备比较昂贵,测试人员不可能人手一台,但又不得不使用的情况,mock原理与模拟第三方基本一致
mock例子 修改响应信息
charles Rewrite:
- 1 -
- 2 -
- 修改规则:
- 内容匹配
- 正则匹配(需要勾选Regex)
- 内容匹配
- 修改规则:
charles另一大神器:MAP LOCAL
Rewrite 只能进行匹配,如果想精确的进行某一个字段进行修改,而这个字段有容易与其他字段冲突,那怎么办?
使用MAP LOCAL
-
原理:与服务端没有任何交互,直接读取本地数据文件(即,使用本地json文件替代第三方服务)
-
针对性会更强
- 解决的问题:硬件设备不可用
-
使用:
- 1 - 首先要拿到正常的响应信息
2 - 保存json文件
- 3 - 打开quote.json文件,修改相关数据
- 4 - 在charles右键响应体文件选择Map Local
- 右下角会有标记
- 1 - 首先要拿到正常的响应信息
|
|
|
|
ps:学习笔记,如有侵权,请联系删除,感谢霍格沃兹测试学院
本文来自博客园,作者:稀饭配菜根,转载请注明原文链接:https://www.cnblogs.com/zwnong/p/15782866.html