测试辅助工具__fiddler抓包基于windows下载安装及使用教程(详细版)
测试辅助工具__fiddler抓包基于windows使用教程
- 1.Fiddler简介
- 2.版本选择
- 3.下载与安装
- 4. 核心配置(HTTPS 解密)
- 1.网页抓包配置
- 2. 手机抓包配置:
- 5.基础使用教程
- 1.界面介绍
- 1. 主菜单简介
- 2. 功能面板
- 1. Inspectors: 检查器,查看/编辑单个请求的请求和响应信息
- 2. Composer: 请求构造器,手动构造、修改、重发 HTTP 请求(脱离浏览器独立调试)(可拖拽)
- 3. AutoResponder:自动响应器,拦截指定的网络请求,并自动返回本地文件、自定义内容或预设状态码。
- 4. Timeline(可视化时间条): 把一堆请求按时间顺序排成瀑布图,看谁慢、谁阻塞、谁在排队。
- 5. Statistics:统计详细时间拆分,数值化汇总选中请求的流量、耗时、状态码分布、DNS 解析次数等。
- 2. fiddler的常用功能
- 1. 设置过滤
- 2. 删除数据
- 3. 查看数据包内容
- 4. fiddler弱网测试
- 5. fiddler设置断点
- 6.测试报告
1.Fiddler简介
Fiddler 是一款免费的 HTTP/HTTPS 协议调试代理工具,它以代理服务器的形式工作,能够记录所有客户端和服务器之间的网络通信,允许你查看、分析甚至修改通信内容。可以把它理解成一个"中间人",让你清晰地看到网络请求的每一个细节
2.版本选择
目前 Fiddler 主要分为两个版本:
| 对比维度 | Fiddler Classic(经典免费版) | Fiddler Everywhere(新版) |
|---|---|---|
| 使用成本 | 完全免费,无功能限制 | 基础功能免费试用,高级功能需付费 |
| 适用系统 | 仅限 Windows | 跨平台(Windows、Mac、Linux) |
| 核心功能 | HT TP/HTTPS抓包、断点调试、弱网模拟、请求重放、脚本自定义 | 包含免费版全部功能,额外支持团队协作、云同步、OpenAPI导入等 |
| 建议人群 | Windows 新手首选 | 需要跨平台或团队协作的用户 |
建议:Windows 用户优先选择 Fiddler Classic,完全免费且功能足够日常使用。两个版本可以共存,互不影响。
3.下载与安装
官方直接下载地址:https://telerik-fiddler.s3.amazonaws.com/fiddler/FiddlerSetup.exe
【注意】: 切勿使用第三方破解站或网盘镜像,易植入流量劫持后门
安装步骤:
- 双击 FiddlerSetup.exe → 接受许可协议 → 选择安装路径(建议默认 C:\Program Files (x86)\Fiddler)→ install安装 → 关闭close
- 安装完成后自动启动。若提示 .NET Framework 4.6+ 缺失,前往微软官网下载安装(Win10/11 通常已内置)
- 首次启动会弹出 WinConfig 弹窗,勾选当前使用的浏览器(Chrome/Edge/Firefox)→ Save Changes → 关闭
- 桌面会生成两个快捷方式:
Fiddler Classic:主抓包程序(日常只用这个)
Fiddler ScriptEditor:写自动化脚本的编辑器(进阶使用,初期可忽略)
4. 核心配置(HTTPS 解密)
1.网页抓包配置
默认情况下 Fiddler 只能抓取 HTTP 明文流量。抓 HTTPS 需信任根证书:
- 顶部菜单 Tools → Options → HTTPS 标签页
- 勾选 ✅ Decrypt HTTPS traffic
即可重新配置 Windows 的可信证书颁发机构列表。
- 弹出证书信任提示 → 点击 2次Yes 安装根证书到系统信任区 → 点击 OK 保存 → 重启 Fiddler 生效
正常访问https协议服务
2. 手机抓包配置:
- 手机与电脑连同一 Wi-Fi
- 手机 Wi-Fi 设置 → 代理 → 手动 → 服务器填电脑 IP,端口 8888
- 手机浏览器访问 http://电脑IP:8888 → 下载 FiddlerRoot.cer → 安装并信任证书(iOS 需:设> 置→通用→关于本机→证书信任设置→开启 Fiddler)
5.基础使用教程
1.界面介绍
1. 主菜单简介
测试建议:常规操作:
Tools → Options(环境配置)
Rules → Breakpoints/Performance(调试控制)
Edit → Mark/Copy(结果整理)
File:
| 常用功能 | 说明 |
|---|---|
| Export Sessions → Selected Sessions | 导出 HAR/RAW 用于 Bug 附件、接口归档、Postman 导入 |
| Import Sessions | 导入历史抓包文件,用于回归测试或复现线上问题 |
| Exit | 安全退出(自动保存配置) |
Edit:
| 常用功能 | 说明 |
|---|---|
| Mark Sessions → Unmark All / Color / Comment | 标记关键请求(如支付接口、报错接口),便于团队协查 |
| Copy → Just Url / Headers / Request Body | 快速复制接口地址、请求头、Payload 粘贴到 Bug 系统或文档 |
View:
| 常用功能 | 说明 |
|---|---|
| Inspectors / Composer / Log / Timeline | 切换右侧/底部面板显示,按需聚焦(如调试时用 Composer,性能分析用 Timeline) |
| Show Full Headers / Show Full Payload | 展开被折叠的请求头/响应体,排查截断问题 |
Tools:
| 常用功能 | 说明 |
|---|---|
| Options → HTTPS / Connections / Cache | 🔑 核心配置区:开启 HTTPS 解密、改代理端口、清理系统缓存 |
| WinConfig | 一键配置 Windows 应用/UWP 走 Fiddler 代理 |
| TextWizard | 快速解码/编码 Base64、URL、JSON、Hex(测试加密字段必备) |
| Fiddler ScriptEditor | 打开脚本编辑器,编写自动化拦截/替换规则 |
Rules:
| 常用功能 | 说明 |
|---|---|
| Breakpoints → Before Requests / After Responses | 🔪 断点调试:拦截请求改参数,或拦截响应改返回数据(Mock) |
| Performance → Simulate Modem Speeds / Disable Caching | 模拟弱网、强制禁用缓存(避免本地缓存干扰接口测试) |
| User-Agents → iPhone / Android / IE | 快速切换 UA 测试移动端适配或 H5 兼容性 |
| Customize Rules… | 打开 CustomRules.js,编写高级自动化逻辑(如自动加 Token、过滤日志请求) |
Help:
| 常用功能 | 说明 |
|---|---|
| About Fiddler / Documentation / Check for Updates | 查看版本、跳转官方文档、检查更新 |
2. 功能面板
| 区域 | 作用 |
|---|---|
| 左侧 Sessions 列表 | 所有请求/响应记录(按时间倒序) |
| 右侧 Inspectors | 请求头/体、响应头/体、JSON 格式化、Raw 原始数据 |
| 底部 Composer | 手动构造请求、修改参数后重发 |
| 右侧 AutoResponder | 规则匹配自动返回 Mock 数据 |
核心面板:
1. Inspectors: 检查器,查看/编辑单个请求的请求和响应信息
2. Composer: 请求构造器,手动构造、修改、重发 HTTP 请求(脱离浏览器独立调试)(可拖拽)
3. AutoResponder:自动响应器,拦截指定的网络请求,并自动返回本地文件、自定义内容或预设状态码。
使用场景:
1. 模拟接口返回错误(404、500、空数据)
2. Mock 假数据,前端没做好也能测
3. 替换线上图片 / JS/CSS
4. 不联网也能调试页面
使用教程:
1.过滤,只抓取百度网站数据
- 设置规则,拦截百度网页并响应404
添加规则:拖拽或手动添加(点击Add Rule)
添加规则后,选中它,再下方的Rule Editor(规则编辑器)中进行配置,配置完点击savej进行保存,再点击Reply刷新网页或重新发起请求。
请求后的响应信息如下:
请求匹配条件匹配规则:
| 匹配规则 | 写法 |
|---|---|
| 精准匹配 | EXACT: + 完整 URL,如:EXACT:https://www.baidu.com/ |
| 模糊匹配 | 通配符如:.js 所有 JS 文件 |
| 正则表达式匹配 |
响应格式分类:
| 测试对象 | 响应格式 |
|---|---|
| 接口 | .json文件 |
| 异常 | 用内置 404/500 |
| 页面 | .html页面 |
| 图片 | .png/.jpg图片 |
| 老接口 | .xml文件 |
比如测试接口:访问百度网站,响应规则是test.json文件格式
1.准备好test.json文件,信息如下:
选择test.json文件上传
点击保存,再清空session列表后进行刷新
访问百度网站后页面响应test.json文件内容
4. Timeline(可视化时间条): 把一堆请求按时间顺序排成瀑布图,看谁慢、谁阻塞、谁在排队。
1.测试场景:
- 分析页面 / APP 加载慢的原因
- 定位 接口响应慢(是网络?服务器?还是排队?)
- 查看资源加载顺序(JS/CSS/ 图片是否阻塞渲染)
- 分析 TCP 连接、TLS 握手、DNS、TTFB(首字节) 各阶段耗时
- 看哪些请求是串行、哪些是并行,优化并发
使用教程:- 打开 Fiddler,抓到一堆请求(刷新页面 / 点 APP)
- 选中 1 个 或 多个请求(Ctrl/Shift 多选)
- 点右侧 Timeline 标签
2.Timeline界面与颜色含义
界面与颜色含义
每行 = 1 个请求
左边:URL / 文件名
右边:时间条(瀑布条)
横轴:时间(毫秒 / 秒)颜色代表资源类型
浅蓝色:图片(jpg/png/gif)
深绿色:JavaScript(JS)
紫色:CSS
蓝色:JSON/HTML/ 接口 / 其他
3. 时间条分段含义:
整个条从左到右代表: DNS → TCP 连接 → TLS 握手 → 发送请求 → 等待服务器响应(TTFB) → 下载响应
1> 条前面的空心 / 实心圆圈:
绿色圆圈:连接复用(Keep-Alive,快)
红色圆圈:新建连接(慢,有 TCP+TLS 耗时)
上圈:客户端→Fiddler;下圈:Fiddler→服务器
2> 黑色竖线:收到服务器第一个字节(TTFB)
线越靠右 = 服务器处理越慢
3> 条尾部图标:
红色 X:Connection: close(不能复用连接)
灰色箭头:302 重定向
红色感叹号:4xx/5xx 错误
4. 显示模式
Timeline(默认):请求瀑布图(最常用)
Client Pipe Map:看客户端连接、进程、端口
Server Pipe Map:看 Fiddler 到服务器的连接
5. Statistics:统计详细时间拆分,数值化汇总选中请求的流量、耗时、状态码分布、DNS 解析次数等。
选单个请求,统计页面如下:
多选多个请求:看汇总统计、平均耗时、状态码分布如下
1. Statistics 面板结构(从上到下)
- 基础统计(顶部)
Request Count:选中请求数
Bytes Sent:上行总字节(请求头 + 请求体)
Bytes Received:下行总字节(响应头 + 响应体)
Request Started At:第一个请求开始时间
Response Completed At:最后一个响应完成时间
Sequence Duration:从第一个请求开始 → 最后一个响应结束的总时长
- ACTUAL PERFORMANCE(真实性能耗时,毫秒 / 秒):
接口各阶段耗时
| 关键项 | 说明 |
|---|---|
| DNS Lookup | 域名解析耗时:正常:< 50ms;偏慢:50ms ~ 200ms;异常:> 200ms (DNS 配置差、网络解析慢) |
| TCP/IP Connect | 建立网络连接耗时:正常:< 100ms;偏慢:100 ~ 300ms;异常:> 300ms(网络差、跨地域、服务器距离远、频繁新建连接) |
| HTTPS Handshake | HTTPS 加密握手耗时:正常:< 200ms;偏慢:200 ~ 400ms;异常:> 400ms(证书链长、TLS 版本低、未复用连接) |
| ServerGotRequest | 服务器收到请求 |
| ServerBeginResponse | 服务器开始返回 |
| Time to First Byte (TTFB)==ServerBeginResponse - ClientDoneRequest | 服务器处理耗时:优秀:< 200ms; 正常:200 ~ 500ms ; 偏慢:500ms ~ 1s; 严重慢:> 1s(接口慢、数据库慢、后端逻辑复杂、服务器压力大) |
| ClientDoneResponse | 客户端接收完毕 |
- Response Codes:响应状态码统计(报错统计)
看有没有大量报错、接口是否大面积异常。
| 状态码 | 说明 |
|---|---|
| 200 | 成功 |
| 304 | 缓存命中 |
| 404 | 找不到 |
| 500 | 服务器报错 |
| 403/401 等 | 权限问题 |
- RESPONSE BYTES (by Content-Type)
按内容类型统计下载流量大小:看页面谁占流量最大
html / script(JS) / css / image(图片) / json(接口) / text 等
- REQUESTS PER HOST(按域名统计请求数:哪个域名请求最多)
显示每个域名被请求了多少次
看哪个域名请求最频繁,判断:接口是否重复请求,图片域名是否压力大,是否存在过多跨域导致性能差
- ESTIMATED WORLDWIDE PERFORMANCE
全球地区速度模拟(参考)
2. Timeline + Statistics 联动(深度分析)
步骤如下:
1.Timeline(宏观)
选中多个请求 → Timeline
找:彩色条长最长的请求、TTFB 靠右、排队严重
2.双击 → Statistics(微观)
看 TTFB 高 → 后端问题
看 TCP/HTTPS 高 → 网络 / 连接问题
看 总时间大但 TTFB 小 → 资源太大 / 下载慢
3.场景判断
1>. 服务器慢
Timeline:TTFB 靠右,服务器慢,TTFB 靠左,服务器快
Statistics:TTFB 占比 > 60%
2>. 下载慢 / 资源太大 / 网络慢
Timeline:彩色条长、但TTFB 靠左
Statistics:Bytes Received 大、Receive 时间长
3>. 后端接口慢
彩色条不长,但黑线TTFB 特别靠右
4> 排队阻塞(楼梯式排队)
请求像楼梯一样,一个等一个
→ 浏览器并发限制 / 域名集中 / 阻塞加载
总结:
TTFB 高 = 后端慢
连接时间高 = 网络慢
总时长久但 TTFB 低 = 资源大
状态码不对 = 接口报错
6.Log(日志):记录 Fiddler 自身运行日志、FiddlerScript 输出、网络错误提示。
主要用于:
1.调试脚本:FiddlerApplication.Log.LogString(“调试信息”) 输出至此
2.排查代理冲突:查看 Failed to establish proxy 或 Certificate trust error
3.监控插件行为:第三方扩展的报错/警告集中显示
QuickExec 命令行
位于工具栏下方/会话列表底部的输入框。输入命令后按 Enter 执行,比翻菜单快 10 倍:
输入 help 可查看全部命令。命令执行后会在 Log 面板输出结果。
| 命令 | 作用 | 测试用例 |
|---|---|---|
| cls | 清空列表(等价 Ctrl+X) | 抓包前快速清屏 |
| select .api. | 仅显示 URL 包含 api 的请求 | 过滤静态资源,聚焦业务接口 |
| bpv POST | 对所有 POST 请求设断点 | 拦截修改请求体,测试参数边界 |
| bpafter /login | 对 /login 响应设断点 | 拦截修改返回数据,Mock 登录失败/权限不足 |
| bpu /upload | 暂停上传 /upload 请求 | 测试大文件上传中断/续传逻辑 |
| urlreplace old new | 替换请求中的域名/路径 | 将线上接口 api.prod.com ,替换为测试环境 api.test.com |
| dns | 刷新 DNS 缓存 | 域名解析异常时强制刷新 |
2. fiddler的常用功能
1. 设置过滤
2. 删除数据
删除一条数据:
删除所有数据:
3. 查看数据包内容
4. fiddler弱网测试
1.弱网开启:
Rules → Performance → Simulate Modem Speeds,勾选 = 弱网开启;取消 = 恢复正常
2.自定义弱网参数
弱网参数模板
| 模板 | 参数 | 速度 |
|---|---|---|
| 2G 网络(极慢) | oSession[“request-trickle-delay”] = “300” oSession[“response-trickle-delay”] = “150”; | 上行:≈ 3.3KB/s 下行:≈ 6.6KB/s |
| 3G 网络(慢) | oSession[“request-trickle-delay”] = “100” oSession[“response-trickle-delay”] = “50”; | 上行:10KB/s 下行:20KB/s |
| 4G 弱网(一般弱网) | oSession[“request-trickle-delay”] = “20” oSession[“response-trickle-delay”] = “10”; | 上行:50KB/s 下行:100KB/s |
| 高延迟(网络不稳、排队严重) | oSession[“request-trickle-delay”] = “1000” oSession[“response-trickle-delay”] = “1000”; | 每 KB 延迟 1 秒 适合测:超时、重试、排队、堵死 |
| 随机抖动(更真实弱网) | if (m_SimulateModem) { oSession[“request-trickle-delay”] = Math.floor(Math.random()*900+100).toString(); oSession[“response-trickle-delay”] = Math.floor(Math.random()*900+100).toString();} | 随机100~1000ms/KB |
| 只对某个域名限速(精准) | if (m_SimulateModem && oSession.host.indexOf(“api.xxx.com”) > -1) { oSession[“request-trickle-delay”] = “300”; oSession[“response-trickle-delay”] = “150”;} |
1.打开规则脚本:Rules → Customize Rules…
2. 找到 m_SimulateModem 代码段(CTRL+F)
3. 保存生效
修改后按 Ctrl+S 保存
回到 Fiddler,勾选 Simulate Modem Speeds 才生效
4.分析弱网session
| 阶段 | 计算方式 | 耗时 | 问题判断 |
|---|---|---|---|
| DNS Lookup | DNS Lookup: 0ms | 0ms | ✅正常(本地缓存,无延迟) |
| TCP 连接 | TCP/IP Connect: 279ms | 279ms | ⚠️ 偏慢(正常 < 100ms) |
| HTTPS 握手 | HTTPS Handshake: 616ms | 616ms | ❌ 严重异常(正常 < 200ms) |
| TTFB(服务器处理) | ServerBeginResponse - ClientDoneRequest | 1714ms | ❌ 严重超标(正常 < 500ms) |
| 下载响应 | ClientDoneResponse - ServerBeginResponse | 17:47:23.871 - 17:47:23.715 = 156ms | ✅ 正常(156ms) |
| 总耗时 | Overall Elapsed | 1870ms | ❌ 严重偏慢(正常 < 1.5s) |
总结:通过 Fiddler Statistics 分析,该接口总耗时 1870ms,其中 TTFB(首字节时间)高达 1714ms,占总耗时 90% 以上,服务器处理严重缓慢;同时 HTTPS 握手耗时 616ms、TCP 连接耗时 279ms,网络连接开销较大。建议后端优化接口逻辑与数据库查询,同时优化 HTTPS 证书配置与连接复用,降低建连开销。
5. fiddler设置断点
作用:拦截请求 / 响应,让你可以修改内容、篡改参数、模拟异常,再放行到服务器 / 客户端。
断点的两种核心类型
| 请求断点 | 响应断点 | |
|---|---|---|
| 说明 | 拦截客户端发往服务器的请求 | 拦截服务器返回给客户端的响应 |
| 用途 | 修改请求参数、请求头、请求体,模拟非法参数、越权操作、重复提交等 | 修改响应数据、状态码、响应头,模拟接口报错、数据异常、权限不足等 |
| 时机 | 请求到达 Fiddler 后,还没发给服务器时暂停 | 服务器返回响应后,还没发给客户端时暂停 |
断点分类:
1.全局断点(一键开启 / 关闭):适合快速拦截所有请求 / 响应,不用指定 URL,适合临时调试。
操作步骤:
- 开启全局请求断点
Rules → Automatic Breakpoints → Before Requests
所有客户端发的请求,都会被 Fiddler 拦截,左侧会话列表显示 红色箭头↑- 开启全局响应断点
Rules → Automatic Breakpoints → After Responses
所有服务器返回的响应,都会被拦截,左侧会话列表显示 红色箭头↓- 关闭全局断点
Rules → Automatic Breakpoints → Disabled
恢复正常,不再拦截任何请求 / 响应
2. 精准断点(指定 URL,不影响其他请求,最常用)
全局断点会拦截所有请求,太麻烦。精准断点只拦截你指定的 URL,是测试 / 调试的首选.
操作步骤:
命令式:
1.在 Fiddler 左下角黑色输入框里输入:
1)bpu 关键词:只拦截【指定 URL 的请求】(改参数、头)
2)bpafter 关键词 :只拦截【指定 URL 的响应】(改返回数据、状态码)
3)bpu bpafter : 清空断点(关闭)
图形化界面:
通过过滤session后,设置断点进行测试
6.测试报告
组成部分:
- 抓包原始数据(导出 HTML/SAZ)
File → Export → Sessions → Selected Sessions → 保存位置
格式:.html/Fiddler Archive (.saz)- Statistics 性能统计数据
1.选中一个或多个请求
2.点右侧 Statistics
3.直接复制里面的内容:
请求总数
状态码 200/404/500 数量
TTFB、DNS、TCP、总耗时
流量大小 RESPONSE BYTES- Timeline 瀑布图截图
- 缺陷截图(请求 + 响应)
选中接口
右侧 Inspectors
上方:Request(请求头、参数)
下方:Response(返回数据、状态码)
截图 → 放进缺陷报告
fiddler学习到此结束
