前言
Fiddler是测试过程中常见的抓包工具。
一、什么是Fiddler?
谈到Fiddler之前就不得不了解一下B/S架构以及请求过程的理解,如下图所示
1、编写程序部署到web服务器;
2、web服务器运行在服务器上,绑定ip地址并监听某端口,接受和处理http请求;
ps:tomcat就是一种web服务器,用来部署服务器资源,浏览器、app、小程序等都称为客户端,它们向服务器所请求的,就是资源。
3、客户端通过http协议获取服务器上的网页、文档等。
Fiddler就是位于客户端和服务器端的HTTP代理,是目前最常用的http抓包工具之一,功能非常强大,是web调试的利器
Fiddler的功能
Fiddler的使用场景
二、Fiddler原理
eg:谷歌浏览器会读一个系统代理
Fiddler只要一打开,就会去修改浏览器中的系统代理(代理服务器),从而抓到浏览器的包。
三、HTTP协议概述
HTTP(超文本传输协议)主要是用来规定客户端和服务端的数据(或者叫资源)的传输格式。
通过抓包工具监听录制到一个登录页面的html格式的请求,客户端到服务端之间通信的过程就是一段文本。
这个请求分为两部分——请求报文/响应报文
请求报文
1、 请求方法
2、URL
eg:https://blog.csdn.net/NingMengLvc?spm=1000.2115.3001.5343
3、请求头
响应报文
1、状态码
用以表示网页服务器HTTP响应状态的3位数字代码
ps:3xx—客户端并没有发生更改
2、响应头
四、Fiddler的使用
工具介绍
工具条
WinConfig不常用。
气泡可以给请求添加备注,也是实际业务中与开发交流的一个场景。
Replay可以进行多次的重放,对服务器进行一个重放攻击(一个小的压力测试),其为顺序执行是串行与jmeter做性能测试(并发)不同。
X移除各种情况的请求。
Go用于断点的后续功能。
ps:点击All Processes右边的空白即可实现一个全局的断点,选中请求点R键即可实现断点;客户端发送请求到达Fiddler时,Fiddler使其暂停了,即为断点。
stream为流模式—服务器返回内容后之间返回给客户端;一般情况下为缓冲模式—服务器把所有的数据都返回之后,Fiddler再一次性转给前端,只有在缓冲模式下才能实现Fiddler的各种功能。
Decode解码,从服务器返回的一些内容(会编码或者进行压缩)需要进行解码才能阅读。
Keep:All sessions保留多少个会话。
Any process选择要监听的程序(浏览器或者各种应用)。
Find查找(Ctrl+F)。
Save保存所有请求。
相机截图。计时器计时。打开浏览器。清除浏览器缓存。
TextWizard编码解码工具。
Tearoff分离工具栏。
online本机的信息。
会话列表
命令行+状态栏
QuickExec输入命令快速执行。
Capturing正在捕获,可以快速设置是否代理。
All Processes筛选请求。
右边空白断点,点击一次请求的断点,点击两次响应的断点(从服务器回来的)。
会话的数量。右边附加的信息。
辅助标签+工具
Statistics统计HTTP请求的性能和其他数据分析,如DNS解析的时间,建立TCP/IP连接的时间消耗等信息。
Inspectors检查器,上面是请求报文,下面是响应报文,以不同形式查看报文信息。
其中:Headers层级展示头部信息可以将请求头进行分类;TextView展示文本;SyntaxView以语法的格式查看请求体;WebForms查看Form参数;HexView十六进制查看;Auth查看鉴权;Cookies;Raw原生;JSON;XML;
AutoResponder自动响应器。场景:不能直接修改生产环境,可以使用自动响应器将请求拦截,然后重定向到指定响应中
- 重定向到本地的资源
- 使用Fiddler的内置响应
- 自定义响应
Composer设计者,简单的接口测试工具,也可以说是一个发包工具。场景:简单的功能测试比如,账号的格式不对,登录的请求就不会发送(JS在控制页面),而接口测试可以直接通过修改参数发送请求,所以说接口测试是非常有必要的(通常接口需要进行格式校验)。
Fiddler Orchestra Beta,测试版本不常用。
FiddlerScript对Fiddler进行编程调整。log日志。Timeline。
Filters过滤器,主机的过滤,进程的过滤,请求头的过滤,断点的过滤,响应状态码的过滤,响应的类型和大小的过滤。
功能使用场景
断点
全局断点(所有请求都进行断点)
请求前断点
响应后断点
场景:
- 把响应的一些数据删除,然后观察界面的展示情况(极端测试)。
- 模拟网络中断。
局部断点
请求前断点bpu XXX,再次输入bpu结束断点。
请求后断点bpafter。
弱网测试
Rules>Performance>Simulate Modem Speeds
捕获HTTPS流量
https=http+ssl+TLS
设置捕获https流量的操作:
ps:firefox默认是不使用系统代理的,如果想捕获firebox的包(选项>高级>网络>设置>使用系统代理)。另外在firefox上捕获https包需要将fidller的证书导入到浏览器中。
安卓设备抓包(Fiddler设置)
- 首先本机和手机要在同一个网络下
- 将安卓代理设置为fiddler,网络>代理>主机名:电脑的ip地址;端口:fiddler监听端口。
抓https的包
- 在手机浏览器上输入电脑ip地址.端口访问fiddler服务页面下载fiddler根证书
- 打开设置>更多设置>系统安全>加密与凭据>从存储设备安装
ios设备抓包(Fiddler设置)
- 确保防火墙允许fiddler进程可以远程连接
- iso设备和本机在同一个局域网下(确保可以访问Fiddler echo servic 页面)
- 配置代理
抓https 的包
- 在手机浏览器上输入电脑ip地址.端口访问fiddler服务页面下载fiddler根证书
- 安装成功后,在设置里信任该证书
Fiddler插件安装
Add Ons for Telerik Fiddler Web Debugging Proxy fiddler插件网站
willow插件
AutoResponder和hosts功能的加强版
可以以项目的方式管理rules