Fiddler介绍
Fiddler是位于客户端和服务器端之间的代理,也是目前最常用的抓包工具之一。
它能够记录客户端和服务器之间的所有请求,可以针对特定的请求,分析请求数据、设置断点、调试http/https应用、修改请求的数据,甚至可以修改服务器返回的数据。
Fiddler原理
Fiddler安装
这里建议在官网下载,以免被强制安装一堆垃圾软件。
官网地址:https://www.telerik.com/fiddler
Fiddler配置
开启Fiddler的抓包功能,File > Capture Traffic
刚下载安装好,是默认不支持抓取https协议的。
HTTPS设置:1.Tools > Options > 2.点击HTTPS标签 > 3.进行图上设置
链接设置:1.Tools > Options > 2.进行图上设置
Fiddler抓包
抓包过程中各图标含义:
- 抓包本博客搜索页为例子
1.打开fiddler,按F12快捷键开始抓包
2.刷新浏览器页面(或者操作APP)
3.左侧页面,查看抓包数据
左侧列表中,里面的每一条都是抓取到的HTTP/HTTPS的请求+响应,大部分情况下都是请求+对应的响应的(除非响应服务端挂了),选中一条内容(这里博客搜索页为例),就可以查看请求和相关响应的详细格式和具体信息。(如果觉得内容太多了,可以随便选中其中一条按住ctrl+a全选,按delete全部删除不需要的内容)
- 其中显示颜色为蓝色的内容,就是获取到的搜索页面的请求+响应。
Fiddler选项卡
- 右侧【Inspectors】是查看请求和响应的内容,上半部分是请求的内容,下半部分是响应的内容。
- 开启fiddler后,默认会监听所有的请求,在大多数情况下,我们只需要监听部分请求,此时可以使用Filters功能去控制,过滤掉不必要的请求。
Hosts过滤规则方式:
1. Show only Intranet Hosts: 只显示内网hosts
2. Show only Internet Hosts:只显示外网hosts
上面的设置很少用到,一般我们采用第二种过滤方式
1. Hide the following Hosts:隐藏以下hosts
2. Show only the following Hosts: 只显示以下hosts
3. Flag the following Hosts:标记以下hosts,在左侧session中会加粗
- 过滤有时候碰到顽固的URL,可以用另外一种办法。
Fiddler请求断点
原理:拦截APP发送给服务端的数据,修改某些数据,然后再发送给服务端
- 默认情况下,fiddler会拦截所有请求,可以单独对某个请求加请求断点。
—–添加请求断点:在fiddler的命令栏里,输入 bpu http://xxx.com
—–取消请求断点:在fiddler的命令栏里,输入 bpu
Fiddler响应断点
作用:修改服务端返回的数据,以测试某些特殊的场景,比如服务端返回状态为500
- 在命令行里,可以针对单个响应进行断点。
—–添加响应断点:bpafter http://xxx
—–取消响应断点:bpafter - 1.打开Rules > Custom Rules,找到相关配置参数
- 2.开启 Rules > Performance > Simulate Modem Speeds
以测试app搜索为例,app搜索输入苹果,点击搜索返回数据后,得到红色苹果、绿色苹果、蓝色苹果等内容,复制应答后的搜索url,fiddler命令栏输入【bpafter + 复制的url】,然后重新发起搜索就可以进行响应拦截,修改响应报文或者删除其中一个颜色的苹果数据后,再放行,看看返回的数据是修改后的还是正常的。
Fiddler响应Mock
为了能让测试在APP开发完成后尽快开展测试,fiddler提供了响应Mock功能,原理如下
APP中的大多数据都来自于服务端,在开发某个功能时,就需要APP端和服务端同时开发。如果APP端开发完毕,但是服务端还没开发好,这种情况下无法开展测试,只能等待服务端开发完成后才能进行测试。
(mock也可以叫挡板:只需要返回正常的数据,不需要返回异常数据)
Fiddler弱网测试
定义:所谓移动端弱网测试指在信号网络带宽比较差的情况下来模拟真实用户APP端的测试。一般来说,网络上行速率<10k,下行速率为<30k这个范围内都算弱网测试。
(request是上行速率) oSession["request-trickle-delay"] = "300"; (response是下行速率) oSession["response-trickle-delay"] = "150";
计算公式:设置时间=1000÷期望速率(公式里的1000是1kb)
如果期望每秒上传是10kb,配置时间参数为1000÷10kb=100ms
如果期望每秒下载是30kb,配置时间参数为1000÷30kb=33ms
意思就是上传10kb,需要100毫秒才能上传完成,下载同理。
(这一步是开启弱网,先调整到自己需要测试的参数,再开启)
Fiddler会话保存
当发现bug时,可以将APP和服务端的交互数据抓出来,然后导出会话,发送给开发,开发将会话导入到本机的fiddler中,便于分析bug产生原因。
Fiddler会话导入
- 版权声明:本文基于《知识共享署名-相同方式共享 3.0 中国大陆许可协议》发布,转载请遵循本协议
- 文章链接:https://www.imiowo.com/1371.html [复制] (转载时请注明本文出处及文章链接)
相关文章
作者:秫米
介绍:来一起坐下喝杯奶茶!
文章:83篇
最后更新:25-03-12

发表评论