Fiddler

1、Fiddler简介

Fiddler是位于客户端和服务器端的HTTP代理
功能非常强大,是web调试的利器

  • 监控浏览器所有的HTTP/HTTPS流量
  • 查看分析请求内容细节
  • 伪造客户端请求和服务器响应
  • 测试网站性能
  • 解密HTTPS的web会话
  • 全局、局部断点功能
  • 第三方插件
    使用场景
  • 接口调试、接口测试、线上环境调试、web性能分析
  • 判断前后端bug、开发环境hosts配置、mock、弱网/断网测试

2、Fiddler工作原理

在这里插入图片描述
浏览器默认读的就是系统代理(火狐浏览器需要设置代理);而fiddler一打开就会作为系统代理。

3、安装

下载网址:https://www.telerik.com/fiddler

4、Fiddler设置请求代理:

4.1Http代理请求

  • 启动代理:点击窗口左下角,显示“Capuring”则说明当前处于代理状态
  • 通过浏览器访问相关网页或执行页面操作(如,登录、搜索)
  • 通过Fiddeler查看代理的HTTP请求进行分析
    在这里插入图片描述
    在这里插入图片描述

4.2 HTTPS代理请求

  • 打开菜单栏:Tools->Fiddles Options打开fiddler配置
  • 打开https配置项,勾选“Capture Https Connects”和“Decrypt HTTPS traffic”,然后点击OK
  • 勾选后会有对话框提示,要求进行windos配置,点击YES/OK即可——安全认证证书的

在这里插入图片描述
如果设置后仍然不能抓取HTTPS,则进行以下操作:

  • 点击Actions——Reset All Certificates(重置证书)——重置证书后,它会自动再次安装证书,您只需要根据提示确认即可。
  • 重置证书后你可以通过Actions——Open windows Certificates Manager,——操作——查找证书——输入fiddler查找,如果有,则代表证书已正确安装
  • 如果已有证书,你可以进一步点击Actions——Trust Root Certificate
  • 完成以上步骤后,重启浏览器及fiddler
  • 在这里插入图片描述
  • 在这里插入图片描述

说明:
fiddler可以通过重复双方标记安全认证的方式跟踪和解释HTTPS协议的会话过程,
Capture HTTPS CONNECTs : 抓取HTTPS连接
Decrypt HTTPS traffic: 获取相应的数据连接

4.3 Firefox的Https代理设置

Firefox默认情况是不适用代理,因此需要手动设置,
点击左边的设置——选项——常规设置——网络设置——选择使用系统代理设置或手动代理配置
在这里插入图片描述
在这里插入图片描述
向Firefox导入Fiddler证书
在fiddler中Tools->Fiddles Options——Https——Actions——Export Root Certificate to Desktop
在火狐浏览器上点击左边的设置——选项——隐私与安全——证书——查看证书——导入——选择刚刚导出到桌面上的fiddler证书——导入后重启浏览器
在这里插入图片描述
在这里插入图片描述

4.4 fiddler系统代理设置

Tools——options——Connections
在这里插入图片描述
fiddler listens on port: 监听端口号,默认是8888,——可以修改端口号(1024-65536)
Act as system proxy on startup: 当启动时作为系统代理
Monitor all connections: 监听所有连接
你可以查看浏览器设置——找到代理设置——可以看到代理服务器被勾选,——进一步查看详细信息,代理地址为127.0.0.1,端口号为8888。当关闭Fiddler后,再次查看浏览器的代理设置,发现代理服务没有被勾选
在这里插入图片描述

补充:基本设置中相关参数说明
在这里插入图片描述
基本配置中选项解释:
第一项:程序启动时通知相应更新
第二项:支持测试版本的升级(你是否同意有测试版本发布时进行升级)
第三项:支持IPV6(必须系统支持)
第四项:参加Fiddler改进计划;
第五项:是否启用高分辨率的计时器
第六项:自动追踪音频和视频流
第七项:如果检测到违反了协议:什么都不做,当严重错误时发出警告,所有错误都警告
第八项:系统快捷键

5、Fiddler界面

在这里插入图片描述

5.1 快捷键

删除会话

  • 选中需要删除的会话,点击Delete键,
  • 如果多会话删除,选中要保留的会话,按shift+Delete
  • 删除所有会话:ctrl+X
    去缓存刷新: shift+F5,在浏览器内操作

5.2 菜单栏

1、File

  • Capture:开始/停止抓包
  • NewViewer:开启一个新的视图;
  • Load Achive: 导入保存好的Fiddler文档(配置文档)
  • Save:保存会话
  • Import Session: 导入会话
  • Export Session: 导出会话

2、Edit

  • Copy:复制
  • Remove:移除
  • Select All
  • Undelete:撤销删除
  • Paste as Session:粘贴会话

3、Rules

  • Hide Image Requests 隐藏图片请求
  • Hide Connects 隐藏建立通道的连接
  • Automatic Breakpoint: 自动设置断点
  • Customize Rules:用户自定义规则,通过脚本设置,
  • Require Proxy Authentication
  • Apply GZIP Encoding
  • Remove All Encodings
  • Hide 304s: 隐藏304状态
  • Request Japanese Content
  • Automatically Authenticate
  • User-Agents
  • Performance :性能

4、Tools
Options:Fiddler设置
WinINET Options:IE设置
Clear WinInet Cache:清除IE缓存
Clear WinINET Cookies:清除IE的Cookies
TextWizard:解码工具
Compare Sessions:对比会话
Reset Script: 重置脚本
Sandbox
Wiew Ie Cache
Win8 Loopback Exemptions
New Session Clipboard
Hosts:

5.3 工具条

在这里插入图片描述

  • winConfig:windows配置设置
  • 添加备注——便于别人查看和理解
  • Replay:重新发送请求,选中一个请求,点击此键即可再次发送(快捷键"R"),多次重复shift+R,然后输入重复的次数(多次重复是串行的,不像Jmeter并发)
  • 删除:Completely &Unmarked是移除完成的且没有标记的,Duplicate response bodies删除多次重复的响应体
  • GO: 在断点出继续执行
  • Stream: 流模式(服务器返回内容立即返回客户端),Fiddler默认是缓冲模式(当服务器将所有的数据返回后,Fiddler接收完成后,一次性转给客户端)一般使用默认缓存模式
  • Decode: 解码,对所有请求返回的代码进行解码,图片显示位置是对某一个具体请求响应的解码 在这里插入图片描述
  • Keep All session:保持所有会话的数量,
  • Any Process :需要要监听的程序,操作方式:点击前面图标并拖动到响应的程序,再次点击消失
  • Find: 查找 Ctrl+F
  • Save: 保存所有的请求会话,
  • 截图
  • 一个简单的计时器,发送请求点击此工具,开始计时,请求完成后点击完成计时
  • Browse,快速打开浏览器
  • Clear Cache:清除缓存,
  • TextWizard:文本的编码解码工具
  • Tearoff: 分离面板
  • MSDN Search:微软开发者搜索功能
  • Online: 本机的一些网路信息

5.4 会话列表

  • Fiddler 抓取到每条的http请求(每一条成为一个session)

  • 主要包括请求的ID标号,状态码,协议,主机名,URL内容类型,body大小,进程信息,自定义备注等信息
    -可以添加用户自定义的列。方法:在会话列表头上右击——选择Customize Columns
    在这里插入图片描述

  • 排序:点击表头可以排序

5.5 在会话列表中添加IP地址列显示

在测试过程中,我们经常需要通过host在不同环境之间切换,如果知道自己的环境是否切换成功,那么通过IP地址就很容判断
设置方法打开Fiddler 菜单栏:Rules——Customize Rules…
通过快捷键Ctrl+F,搜索static function Main()函数,在函数中添加一行代码,

FiddlerObject.UI.lvSessions.AddBoundColumn("ServerIp",120,"X-HostIP")

其中“ServerIP”是提示语
120是所占宽度;
“X-HostIP”是你要连接的主机名称
在这里插入图片描述

5.6 QuickExec命令行及状态栏

  • 命令行

在这里插入图片描述

常见的命令有:

  • help打开官方的使用页面介绍,所有的命令都会列出来
  • cls清屏(ctrl+x也可以清屏)
  • select选择会话的命令
  • ?.png 用来选择png后缀的图片
  • bpu 截获request
    状态栏
    在这里插入图片描述
  • Capturing:正在抓包,如果没有,则表明停止抓包
  • All Process,webBrowsers、Non-Browser、Hide All——快速这是监控的进程
  • 空白处:设置全局断点,点击1下设置Request前断点,点击2下设置Response后断点,点击三下取消断点
  • xx/xx: 当前选中多少会话,总共有多少会话
  • 最后一项是:当选择一个会话框后,展示会话的附加信息,如设置断点后会显示断点

6、辅助标签和工具

6.1 Statistics(统计视图)——web性能或调试用

Http请求的性能和其它数据分析,如DNS解析时间,建立TCP/IP连接时间消耗等信息
在这里插入图片描述
在这里插入图片描述
可以在左边选择多个会话框。显示你选择会话框中所有请求的响应

6.2 Inspectors(检查器)

双击一个请求就会跳转到此界面——检查一个请求,
可以多种方式查看请求的请求报文和响应报文的相关信息,上面部分是请求报文,下面部分是响应报文

请求报文

  • Headers:只包含header内容
  • TextView:展示文本内容
  • SyntaxView,语法格式,JavaScript
  • WebForms:表单提交的方式
  • HexView:16进制
  • Auth:权限相关
  • Cookies
  • Raw:原生格式
  • Json
  • XML

响应报文

  • Transformer:
  • Headers:
  • TextView:展示文本内容
  • SyntaxView,语法格式,JavaScript
  • ImageView: 图片
  • HexView
  • WebView:网页
  • Auth
  • Caching :缓存
  • Cookies
  • Raw
  • Json
  • XML

6.3 自动相应器(AutoResponder)

可用于拦截某一请求,可以进行如下操作:

  • 重定向到本地的资源
  • 是用Fiddler的内置响应
  • 自定义响应
    在这里插入图片描述
    例如正式环境下出现了一个问题,你无法在正式环境下进行调试(否则会影响到用户的使用),则可以使用自动相应器将请求拦截下来,重定向到本地或指定响应
    Enable rules:启用规
    Unmatched requests passthrogh: 通过没有匹配的请求
    Add Rule:添加规则
    Import:导入规则
    Group:分组规则
    Rule Editor:规则编辑器:
  • 第一项:是需要拦截的请求
  • 第二项:对拦截请求做出的响应,Fiddler中有一些内置的响应(如,200,404等)。 除了内置响应还可以通过find a file(找到一个文件作为响应)或Create new response
  • 除了上面的编辑方法外,也可以直接选中需要拦截的请求,拖动到AutoResponder中,然后编辑相应的响应内容
    在这里插入图片描述
  • 如果研发人员还没开发完相应的接口,我们也可以通过Fiddler模拟接口相应,例如登录的接口还没开发完成,在点击登录后的相应我们可以编辑相应的响应,设置第一项的请求内容,右击请求,选择Edit Response
    在这里插入图片描述
    在这里插入图片描述

6.4 Composer(设计器——请求报文)

  • 是一个简单的接口测试工具或者说是发包工具,像Auto Response一样可以直接编辑请求,也可以直接将请求拖放到Composer中。拖放后自动生成请求方式,请求URL,请求头和请求体
    在这里插入图片描述
  • 也可以进行请求重放
    选择响应的请求(一条或多条都可以)拖放到Scratchpad中,对后一个报文连击3下后会高亮显示,然后点击Execute执行
    在这里插入图片描述

7、fiddler过滤会话

如果不设置过滤效果,那么凡是经过浏览器的请求都会被拦截并记录,给使用和分析造成比较多的不方便。因此一般都会使用过程中,设置数据过滤效果。默认情况下过滤功能是关闭的

7.1 过滤功能开启

在这里插入图片描述

7.2 设置Action

  • Run Filterset now 是否立即运行
  • Load Filterset 加载,之前的设置内容
  • Save Filterset 保存过滤设置

7.3 Hosts过滤

zone:指定显示内网(Intranet)或互联网(Interneet)的内容
host:

  • No Host Filter 无Host过滤
  • Hide the following Hosts: 隐藏下面的主机,
  • Show only the following Hosts:只显示如下Hosts
  • Flag the Following Hosts:加粗显示如下Host

注意:
输入多个HOST,多个之前用半角逗号或者回车分隔;
支持通配符:%,*,等
在这里插入图片描述
也可以右击请求——copy——This Column——粘贴到主机区域
在这里插入图片描述

7.4 Client Process过滤规则:

  • Show only traffic from :可以指定捕获哪个Windows进程中的请求;
  • Show only Internet Explorer Traffic: 只显示IE发出的请求
  • Hide Windows RSS platform traffic: 隐藏Windows Rss平台发出的额请求
    在这里插入图片描述

7.5 Request Header过滤规则

  • Show only if URL contains: 只显示URL中包含特定内容的,例如:只显示带有登录的
  • Flag Requests with headers: 标记带有特定header的请求
  • Delete requests headers:删除请求header
  • Set request header: 设置请求的header
    在这里插入图片描述

7.6 断点设置(Breakpoints)

设置断点后,在符合条件时,就会停止运行,不再发送响应请求

  • Break request on HTTP POST: 给所有POST请求设置断点;
  • Break request on HTTP GET with QueryString: 给所有带参数的GET请求设置断点;
  • Break on XML HTTPRequest :给ajax请求设置断点
  • Break response on Content-Type: 给特定的Content-type(响应类型)设定断点。
    在这里插入图片描述
    运行到断点后需要继续运行,选中断点,并点击工具栏中的“Go”即可
    在这里插入图片描述

7.7 响应状态码过滤规则(Response Status Code)

在这里插入图片描述

  • Hide success(2xx) 隐藏成功的session;
  • Hide non-2xx: 隐藏非2开头的状态码;
  • Hide Authentication demands:隐藏未经授权被拒的session
  • Hide redirects: 隐藏重定向
  • Hide Not Modified(304) 隐藏无变更的session

7.8 响应类型和大小的过滤规则:

在这里插入图片描述

  • Show all Content-Type:显示所有响应类型;
  • Hide smaller than ?KB:隐藏小于指定大小的session;
  • Hide larger than ? Kb: 隐藏大于指定大小的session;
  • Time HeatMap:获得即使数据;
  • Block script files:阻止脚本文件,显示为404
  • Block imagefiles:阻止图片文件;
  • Block SWF files:阻止SWF文件;
  • Block CSSfiles:阻止CSS文件;

7.9 响应头过滤(Response Headers)

在这里插入图片描述

  • Flag response that set cookies : 标记会设置cookie的响应;
  • Flag response with headers: 标记带有特定header的响应;
  • delete response headers:删除响应header;
  • Set response header: 设置响应的header;

8、设置断点修改Reques

8.1 断点介绍

  • Fiddler最强大的功能莫过于设置断点,可以修改HTTPRequest的任何信息,包括:host,cookie或者表单中的数据
  • 断点有根据作用域范围分全局断点和局部断点
  • 断点根据断点的时间点分:请求前断点(Before Request)和After Response(响应后断点)

8.2 请求前断点

方法1:打开Fiddler 点击Rules——Automatic Break——Before Requests/After Response(这种命令发给发会中断所有的会话)
方法2:点击状态栏如下图所示位置,点击第1下是Before Request断点,点击第2下是After Response断点,点击第三下是取消断点
在这里插入图片描述
方法3:再命令行中输入命令:bpu www.baidu.com(这种方法只会中断wwwbaidu.com),如果只输入bpu 则是取消断点(bpu 后面可以是全路径,也可以断点请求中包含的特定字符,例如:bpu baidu),注意命令后要有空格

方法1和方法2设置的是全局断点,方法3是局部断点

8.3 修改Request

设置断点后,选中断点,选择右边Inspectors,然后选择webForms(也可以双击断点),找到对应的值进行修改。修改完成后点击“Go”继续执行,也可以点击Run to completion继续执行

在这里插入图片描述

8.4 响应后断点

  • 设置断点方法:
    方法1:打开Fiddler 点击Rules——Automatic Break——After Response(这种命令发给发会中断所有的会话)
    方法2:点击状态栏如下图所示位置,点击第1下是Before Request断点,点击第2下是After Response断点,点击第三下是取消断点
    方法3:再命令行中输入命令:bpafter www.baidu.com(这种方法只会中断wwwbaidu.com),如果仅输入bpafter则是取消断点
    方法
    方法1和方法2设置的是全局断点,方法3是局部断点

8.5 修改Response

设置断点后,选中断点,选择右边Inspectors,然后选择webForms(也可以双击断点),找到对应的值进行修改。修改完成后点击“Go”继续执行,也可以点击Run to completion继续执行
在这里插入图片描述
After Response 实际也是网络中断的模拟

10 、弱网测试

Rules——performance——Simulate Modem Speeds(模仿调制解调器速度)
在这里插入图片描述

10.2 精准设置网速

Rules——customize——ctrl+f——搜索m_SimulateModem
在这里插入图片描述
设置完脚本后,保存脚本并重新启动Fiddler,并确认Simulate Modem Speeds已经勾选

11、Fiddler手机抓包(Android)

11.1 Fiddler设置

  • Tools——Fiddler options——connections
  • 勾选Allow Remote Computers to connect
    • 同时确保Tools——Fiddler options——HTTPS中Capture HTTPS CONNECTS和Decrypt HTTPS traffic被勾选
      在这里插入图片描述
  • 重启Fiddler
  • 确保防火墙允许Fiddler进程可以远程连接(关闭防火墙)
    -设备连接wifi——与PC同一个wifi下
  • 确保ISO设备可以访问http://fiddlerMachineIP:8888该地址返回Fiddler Echo Service页面

11.2 手机端设置

  • 设置——WLAN——连接上的WLAN设置
  • 点击代理——手动,设置主机名为Fiddler所在的主机IP,端口为Fiddler监听端口
  • 打开Android设备浏览器,输入http://Fiddler所在主机IP:Fiddler监听端口/
  • 点击页面底部FiddlerRoot certificate下载证书
  • 打开设置——更多设置——系统安全——加密与凭据——从储存设备安装
  • 选择下载好的FiddlerRoot.cer进行安装
  • 浏览器打开https://www.baidu.com已经可以抓包HTTPS包了
  • 注意:测试完毕,记得关闭代理,否则手机无法上网

在Fiddler的Online标签下可以查看Fiddler网路信息,包括IP地址及端口号
手机端安装Fiddler证书:打开手机浏览器,输入Fiddler的网路信息(IP地址及端口号)

报错处理

12、Fiddler手机抓包(ISO)

12.1 Fiddler设置

  • Tools——Fiddler options——connections
  • 勾选Allow Remote Computers to connect
  • 同时确保Tools——Fiddler options——HTTPS中Capture HTTPS CONNECTS和Decrypt HTTPS traffic被勾选
    在这里插入图片描述
  • 重启Fiddler
  • 确保防火墙允许Fiddler进程远程连接
    -设备连接wifi——与PC同一个wifi下
  • 确保ISO设备可以访问http://fiddlerMachineIP:8888该地址返回Fiddler Echo Service页面

12.2 手机端设置

  • 设置——无线局域网设置——点击已经连接上的wifi
  • HTTP代理——手动,设置主机名为Fiddler所在的主机IP,端口为Fiddler监听端口
  • 打开Android设备浏览器,输入http://Fiddler所在主机IP:Fiddler监听端口/——储存
  • 点击页面底部FiddlerRoot certificate下载证书
  • 下载完成后,会自动提示您安装,按照提示安装
  • 安装成功后进入设置——通用——关于手机——证书信任设置中,信任刚安装的Fiddler证书
  • 浏览器打开https://www.baidu.com已经可以抓包HTTPS包了
  • 注意:测试完毕,记得关闭代理,否则手机无法上网

在Fiddler的Online标签下可以查看Fiddler网路信息,包括IP地址及端口号
手机端安装Fiddler证书:打开手机浏览器,输入Fiddler的网路信息(IP地址及端口号)

13、Fiddler插件安装

13.1 Willow

Fiddler插件中心网址:https://www.telerik.com/fiddler/add-ons

willow主要是通过工程管理的思想,实现多环境创建及切换。通过创建工程,在工程中设置不同的规则。

13.2Fiddler中会话比较功能

选中2个会话,右击然后选择Compare,就可以用Windiff来比较两个会话的不同了(需要实现安装winDiff),响应数值越大,响应越慢,反之,响应数值越小对网路速度影响越小

14 Fiddler小的操作技巧

保存请求:
在这里插入图片描述

其他参考文献:
Fiddler抓包使用教程https://blog.csdn.net/yue549433330/article/details/82745760

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值