测试常用工具之Fiddler
一、Fiddler常用功能简介
1.1 Fiddler 页面简介
1.2 菜单栏
(1)File,文件管理
(2)Edit,会话编辑
主要是复制、粘贴、移除、标记、解锁编辑与对话查找
(3)Rules,会话显示规则管理
(4)Tools,抓包工具设置
Tools之option,抓https请求
Tools之Connection,连接设置
1.3 工具栏
(1)Comments,会话备注
用于注释说明某请求,常用于测试提交bug时的补充说明
(2)Replay,重放请求
重放选择的请求多次,用于压测。与Jmeter等压测不同,此处Fiddler是串行顺序地发送请求,而JMeter是并行的。
快捷键 R:重放请求一次
快捷键 Shift + R:重放请求指定次数
(3)Remove,移除特定会话
(4)Stream,流模式
Fiddler有两种模式,缓存模式与流模式,默认处于缓存模式。
缓存模式:Fiddler把所有请求的响应全部获取后,先不返回给客户端浏览器,Fiddler收到的响应达到一定大小时,再一次性返回给客户端浏览器。
流模式:Fiddler每获取到一个请求的响应后,就立刻把响应返回给客户端浏览器。
下图表示Fiddler已处于流模式,再次点击即可退出流模式:
(5)AnyProcess,只抓指定应用的包
如:只抓微信的包
(6)其他
1.4 会话(session)列表区
该区用多个字段显示每个session的概况,这些字段可通过FiddlerScript和页面来编辑,单击列名还可以将session排序,以下是各常见字段的含义:
编辑列
自定义列也可以通过编辑FiddlerScript定义
1.5 单个session详情及编辑区
(1)概览
(2)Statistics,统计
(3)Inspectors,会话检测器
该工具能以各种格式方便的查看各种类型的请求及响应,也能在此工具下对session的请求及响应很方便地编辑,构建请求及响应。
(4)AutoResponder,伪响应
页面简介
可用于极限测试(边界值分析)
伪响应可用于极限测试,测试服务器返回空(模拟实际应用中因某种原因可能导致的状况)时,客户端是否有友好的提示。
如下图:
实际客户端UI如下:
(5)Composer,请求构造器
此工具用于生成请求,能做简单的接口测试或调试
(6)Filters,请求过滤器
主要是对session会话的主机设置、客户端进程、请求头、断点、HTTP相应状态码、响应类型和大小、响应头等各部分做详细的筛选过滤,以及过滤器的生效设置的使能。下图仅介绍常用功能,其中,要特别注意是否有绿色的勾选,如果疏忽的话可能会导致不会显示请求,重启Fiddler后,会自动取消勾选:
1.6 状态栏
1.7 快捷命令行
类似于Linux命令行或Windows CMD,以命令行形式快捷控制Fiddler,如下图:
常用命令如下表:
命令 | 作用 |
---|---|
help | 打开Fiddler快捷命令的官网 |
?searchtext | 搜索session 列表中,URL含searchtext的所有session |
>size <size | 选择所有响应大于size字节的session 选择所有响应小于size字节的session |
=status/method | 选择指定响应状态码或请求方法的所有session,如 =301,会选择所有301状态码的session; =post,会选择所有3请求方法为post的session |
@host | 选择服务器域名中含host字符的session |
bpu [url_path] | Break Point for Url,请求前断点,为包含指定url_path字符的 所有session设置断点,即为局部断点,若url_path不填,则为所有session设置断点,即为全局断点 |
bpafter [url_path] | 响应后断点,作用方式同bpu命令 |
二、Fiddler实际应用
2.1 火狐浏览器配置Fiddler代理,抓HTTPS
Fiddler不会自动设置为火狐的代理,需手动设置,以火狐110.0.1 (64 位)为例:
(1)设置代理
打开设置,搜索 网络设置 ,点击 设置…(E) 按钮:
按下图设置即可:
(2)导入证书(旧版本的需要此步,新版本无需此步)
在设置中搜索证书,查看是否已安装Fiddler证书
若无证书,则按下面步骤导入证书即可:
将桌面上的证书导入即可
2.2 Fiddler抓移动设备的包
注意,即便以下设置全部正确,也不能保证所有的https包都能抓到,因为移动设备的安全反爬设施越来越严格。
(1)Fiddler允许被远端设备访问
(2)移动设备下载证书
移动设备与装Fiddler的电脑连接同一WiFi,设置移动端的代理
Android设置代理(以小米9为例)
IOS设置代理(以iphone11为例)
代理设置完毕后,移动端打开浏览器,访问:http://电脑主机IPv4:Fiddler监听的端口,如上图的http://192.168.31.233:8889,再下载、安装及信任证书即可抓移动端的包。
2.3 请求断点的应用
(1)请求前断点
未篡改请求前的响应
设置请求前断点,并截取到请求后,要立刻取消断点;虽然断点已取消,但已设置的断点在放行(Go)之前是不会自动取消的。篡改后的结果如下图:
(2)响应后断点
放行之后,客户端显示用户不存在。