fiddler工具在移动app测试中的使用
fiddler工具是基于web代理技术的抓包工具
fiddler抓包原理
- app ------> fiddler ------> 服务器 ------> fiddler ------> app
- fiddler工具支持的是http协议、https协议、websocket协议的数据的抓取,不是所有的app和服务器之间的交互数据都能抓取到,比如手游
- fiddler使用.net开发,需要.net framework的支持,尤其是win7
fiddler环境配置
选项设置
- Fiddler listens on port 监听端口(默认8888)
- Allow remote computers to connect 允许远端电脑连接(包括手机/模拟器)
- capture FTP requests 抓取FTP请求
- Reuse client connections 重用客户端连接
- Reuse server connections 重用服务端连接
- Act as system proxy on startup 启动时作为系统代理
- Monitor all connections 监控所有的连接
HTTPS设置
- Capture HTTPS CONNECTS 抓取HTTPS连接
- Decrypt HTTPS traffic 解密HTTPS通信
- ignore server certificate errors(unsafe) 忽略服务证书错误(不安全)
- Check for certificate revocation 检查证书取消
- Trust Root Certificate 信任根证书
- Export Root Certificate to Desktop 导出根证书到桌面
- Reset ALL Certificates 重置所有证书
修改fiddler的设置后,重启一下fiddler软件保证所有的修改生效
对手机/模拟器进行证书的安装和代理设置
-
使用手机浏览器访问Fiddler所在的电脑的【ip地址:fillder端口号】
下载证书,若手机没有密码,会提示你设置密码
-
证书安装后,需要在wifi上设置,用fiddler进行网络代理,必须要设置
重点补充:
① 抓真机的手机包,你的Fiddler所在的电脑,必须切换成wifi网 络,并且手机和电脑使用同一个wifi网络
② 因为手机要被Fiddler抓包,需要把代理服务器调成Fiddler,一旦离开公司,你的wifi就断掉了,但是你的网络代理仍然是Fiddler,所在出现了,你发现你手机不能 上网的情况,你需要把网络代替取消,让你的手机恢复到4G网络
关于虚拟机的注意事项
① 物理机上Fiddler <======> 物理机上手机模拟器
② 虚拟机上Fiddler <======> 虚拟机上手机模拟器
③ 物理机上Fiddler <======> 虚拟机上手机模拟器
想要连通数据,首先是虚拟机和物理机是网络相互访问的,如果两个不互通,需要设置虚拟机的网络适配器,将NAT模式换成桥接模式,“复制物理...”可以勾选上
fiddler测试App时需要使用到的重点功能
Hosts设置和Inspectors数据分析器
hosts
hosts设置功能可以将app的host(网址或域名)随意绑定到指定的服务器上(如:开发环境、测试环境、预生产环境等)
需要绑定过去地址写在前面,当中空一格,被转移的地址写在后面,最后不可以有空格。
使用完毕后务必关闭(反选)HOSTS,不然会影响抓其他app数据包
使用HOSTS功能的同时,必须保证fiddler是开启的,并且网络代理设置成fiddler
inspector
进入Inspector模块分上下两部分
上半部分对应的是app发往服务器的“请求数据”
下半部分对应的是服务器回给app的“响应数据”,响应数据主要看json格式
Filters功能
数据包列表的数据太多,用filters过滤器功能
AutoResponder接口数据模拟器(挡板测试)
模拟各种测试数据,例如:异常数据、虚拟数据等,用于不同的测试场景
思考
购物车数量的单点功能我们如何测试?
思路
如果想测试购物车有1000件商品,就会发现比较麻烦,需要在后台去构造1000件商品。为了更方便地开展测试,可以使用AutoResponder模块的功能,模拟出假的服务器响应数据(最佳解决方案,现在外面很多叫它“挡板测试”)
例如:
9
99
999
-1
汉字
特殊字符
操作
(提前准备)加入一个商品到购物车,购物车数量变成1
(抓包)点击购物车按钮,将抓到购物车的数据,找到购物车数量的数据
右键数据包->Save->Response->Entire Response,保存整个服务器响应数据文件到本地
使用AutoResponder
(点击【Add Rule】就可以添加规则了)
注意事项
反复修改本地的服务器响应数据文件,反复在APP界面上去触发购物车接口,我们可以发现每次我们都使用的是“模拟的数据”
当不使用的时候,务必记得反选Enable rules,关闭AutoResponder功能,即:
这里一定要注意,上图中的Unmatched requests passthrough一定要勾上,因为这个勾上的含义代表着,规则只针对当前接口有效