初识Fiddler
fiddler,译为骗子
是位于客户端、服务器端的HTTP代理,是Web调试的利器。
是c#编写的程序
Fiddler主要功能:
- 监控http、https流量
- 查看、分析请求内容细节
- 伪造客户端请求和服务器响应
- 简单测试网站的性能
- 解密https的web会话
- 全局、局部断点功能
- 可使用第三方插件
Fiddler使用场景:
- 接口调试
- 接口测试
- 线上环境调试
- web性能分析
- 判断前后端bug
- 开发环境hosts配置
- mock
- 弱网、断网测试
要使用好Fiddler,需要熟悉http协议相关知识,Fiddler与http是相辅相成的关系。
BS架构
HTTP协议
请求报文
请求行
请求方法
统一资源定位符url,用于描述网上的资源
http协议版本,一般是1.1
请求头
可以是任意内容,又开发自定义,了解常见的请求头
空一行
请求体
不一定会有,get请求是没有请求体
响应报文
响应行
响应头
可由开发自定义
空一行
响应体
文本、xml、html
fiddler菜单栏
File
导入导出会话
Edit
编辑
Rules
过滤会话
Tools
View
视图
Help
帮助
fiddler工具条
备注
重放replay
r
shift+r
删除会话
delete
移除请求
ctrl+x
go 断点
让请求在某个地方停下来
全局断点
请求前断点,在发送到服务器前暂停
流模式
相对于缓冲模式而言,缓冲模式是全部数据回来后,fiddler再返回给客户端,流模式是回来多少返回多少
默认是缓冲模式
解码decode
对所有请求解码
保持会话数量 keep session
会话是会占用内存
选择监听程序 any process
选择监听应用
查找 find
ctrl+f
如快速查找会话中出现的字段,快速定位请求
保存 save
保存所有会话
截图
计时器
browse
快捷打开浏览器
清除缓存 clear cache
文本编码、解码 textwizard
tearoff
分离面板
MSDN
微软开发者网站搜索
online
展示本机的一些信息
fiddler会话列表(监控面版)
展示http的每一条会话
result,响应状态码
protocal
host
url
body,请求体大小
caching
content-type
process,进程
comments
custom
添加列
如fiddler添加ip列
修改配置文件,之后重启
排序
fiddler命令行、状态栏
quickexec
通过命令实现一些功能
如bpu
输入help,可以跳转:https://docs.telerik.com/fiddler/knowledgebase/quickexec
快速停止捕获
快速选择进程
快速断点
fiddler辅助标签、工具
统计性能信息 statistics
前端人员可以看这些数据分析
检查器 inspectors
以不同形式展示请求报文、响应报文,分类展示请求报文、响应报文
自动响应器 autoresponder
选中或者直接拖动
可用于拦截某一请求,进行如下操作:
重定向到本地资源
使用fiddler内置响应
自定义响应
如生产环境除了问题,不能够直接在生产环境进行调试,重定向到本地
进行钓鱼操作
可以做mock,如测试的接口还没有完全开发好,可以模拟返回响应
可以进行极端测试,如查询接口没有数据返回,看页面怎么展示,或者返回大量数据
可以做接口调试
composer 设计请求报文
抓包后,直接拖动过来
可以用来发包,如可以绕过前端控制测试后端接口,如前端控制手机号码不能输入格式不对的号码,直接修改请求报文发包测试,看后端是不是校验了
log
日志
过滤器 fiters
多维度组合过滤,过滤出我想要的内容
hosts主机的过滤
如指定抓取网站
- client process过滤 客户端进程、
- request headers过滤
- breakpoint过滤
根据响应码过滤
- 根据响应报文内容的类型、大小过滤
- 根据响应报文头进行过滤
断点
全局断点
对所有的请求都有用
请求前断点,修改请求报文后发给服务器
响应后断点,修改响应报文后返回给客户端。可以不用修改数据库的中的数据,做一些极端测试,如数据库有数据,你先模拟返回没有一条数据。可以模拟网络中断的情形,测试客户端的超时机制
局部断点
通过命令实现
bpu 请求前断点
bpafter 响应后断点
弱网测试
可以在配置文件中修改时间,修改后重启fiddler,再启用弱网
https抓包
安装证书
这是提示了自动响应设置没有设置好
重启浏览器
chrome、ie是读取系统代理
firefox浏览器
firefox浏览器是自己管理代理,需要人工设置
firefox浏览器手工导入证书,才能抓取https的包
导入证书,之后重启浏览器
app抓包
抓取ios设备app的包
手机抓取http包,需要安装证书。但是即使按照了证书,不一定能抓到包,因为手机系统和app的各种限制,可能也抓不到包。
抓取android设备app的包
手机抓取http包,需要安装证书。但是即使按照了证书,不一定能抓到包,因为手机系统和app的各种限制,可能也抓不到包。
fiddler插件
willow插件
以项目方式管理host规则
练习环境:http://test.lemonban.com/ningmengban/app/login/login.html