首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >软件测试工程师必看:手把手教你用Fiddler进行数据抓包与分析

软件测试工程师必看:手把手教你用Fiddler进行数据抓包与分析

原创
作者头像
程序员二黑
发布2025-08-23 21:08:53
发布2025-08-23 21:08:53
51400
代码可运行
举报
文章被收录于专栏:软件测试软件测试
运行总次数:0
代码可运行

作为软件测试工程师,你是否曾经遇到过这些场景:前端显示异常但却无法确定是前端还是后端问题;需要测试接口但缺乏详细文档;想要验证移动应用的网络请求是否正确;或是需要模拟弱网环境测试应用表现?

这些常见测试挑战都可以通过掌握一款强大工具来解决——Fiddler。本文将全面介绍软件测试工程师如何利用Fiddler进行数据抓包与分析,提升测试效率与深度。

一、Fiddler简介与测试中的应用价值

1.1 什么是Fiddler?

Fiddler是一款免费的HTTP/HTTPS协议分析工具,由Telerik公司开发。它作为代理服务器运行,能够捕获所有通过它的网络流量,提供详细的请求和响应分析功能。相比于浏览器自带的开发者工具,Fiddler的优势在于能够捕获非浏览器流量(如桌面应用、移动应用)并且提供更强大的数据操纵能力。

1.2 Fiddler在软件测试中的核心价值

对于软件测试工程师而言,Fiddler提供了以下关键价值:

  • 接口测试与分析:无需文档即可分析接口请求和响应结构
  • 前后端问题定位:精确判断问题是出自前端、后端还是网络层面
  • 性能测试辅助:分析请求耗时,找出性能瓶颈
  • 安全测试支持:检查敏感信息是否明文传输
  • 模拟测试环境:模拟各种网络条件、修改响应数据等
  • 自动化测试集成:与测试脚本结合增强测试能力

二、Fiddler安装与基础配置

2.1 安装Fiddler

Fiddler可在官网(https://www.telerik.com/fiddler)免费下载。安装过程简单,只需注意以下几点:

  • Windows系统建议Windows 7及以上版本
  • 安装时需要.NET Framework支持
  • 建议以管理员身份运行安装程序

2.2 基础配置指南

首次使用Fiddler需要进行一些基本配置:

配置HTTPS抓包:

  1. 打开Tools > Options > HTTPS
  2. 勾选"Capture HTTPS CONNECTs"和"Decrypt HTTPS traffic"
  3. 安装Fiddler根证书(会弹出提示)
  4. 根据需要配置"Ignore server certificate errors"选项

配置连接设置:

  1. 打开Tools > Options > Connections
  2. 设置监听端口(默认8888)
  3. 勾选"Allow remote computers to connect"(用于移动设备抓包)

配置抓包过滤器:

  1. 在Filters选项卡中配置过滤条件
  2. 可基于主机名、进程等条件过滤请求

三、Fiddler界面详解与基本操作

3.1 主界面功能区域介绍

Fiddler界面分为以下几个主要区域:

  • 会话列表:显示捕获的所有HTTP请求,包含状态码、协议、主机名、URL、大小等信息
  • 请求查看器:显示选中请求的详细信息,包括 headers、文本视图、Hex视图等
  • 响应查看器:显示服务器返回的响应内容
  • 工具栏:提供常用功能的快捷访问
  • 状态栏:显示当前抓包状态和统计信息

3.2 基本抓包操作

开始/停止抓包:

  • 点击File > Capture Traffic或使用快捷键F12
  • 状态栏左侧显示"Capturing"表示正在抓包

清空会话列表:

  • 点击Edit > Remove > All Sessions或使用Ctrl+X

保存会话数据:

  • 点击File > Save > All Sessions可保存为SAZ格式(Fiddler专用格式)
  • 也可导出为其他格式如HTTPArchive格式

四、数据抓包实战技巧

4.1 浏览器流量抓取

浏览器流量抓取是Fiddler最基本的功能。只需确保浏览器代理设置为Fiddler监听端口(默认8888),Fiddler即可捕获所有浏览器发起的请求。

注意事项:

  • 某些浏览器(如Chrome)可能使用系统代理设置,而其他浏览器可能需要手动配置
  • 使用完毕后记得恢复代理设置,否则可能导致无法上网

4.2 移动设备流量抓取

移动应用测试是Fiddler的重要应用场景,配置步骤如下:

  1. 确保PC和移动设备在同一局域网
  2. 查找PC的IP地址:在Fiddler中点击Online > Get Computer IP获取
  3. 移动设备配置代理:在Wi-Fi设置中手动配置代理,服务器为PC的IP地址,端口为8888
  4. 在移动设备上安装Fiddler根证书:浏览器访问http://:8888,下载并安装证书
  5. 开始抓包:操作移动应用,Fiddler将捕获所有网络请求

iOS设备特别注意:iOS 10.3及以上版本需要在"设置 > 通用 > 关于本机 > 证书信任设置"中启用Fiddler根证书

4.3 桌面应用程序抓包

对于桌面应用程序,有以下几种抓包方式:

  • 如果应用使用系统代理设置,Fiddler可直接捕获
  • 如果应用不使用系统代理,可使用WinINET代理强制工具(如Fiddler的Hook功能)
  • 对于特别顽固的应用,可能需要使用路由级重定向技术

4.4 过滤目标请求技巧

当会话列表中有大量请求时,使用过滤功能可以快速定位目标请求:

使用Filters选项卡:

  • 在Hosts过滤器中指定只显示特定域名的请求
  • 使用Process过滤只显示特定进程产生的请求

使用命令行快速过滤:

  • 在左下角QuickExec框中输入"urls www.example.com"只显示该域名请求
  • 输入"select image"选择所有图片请求

使用搜索功能:

  • 点击Edit > Find Sessions或使用Ctrl+F搜索特定内容

五、数据分析与解读

5.1 理解HTTP请求结构

在Fiddler中选中一个会话,查看Inspectors标签页的Raw部分,可以看到完整的HTTP请求:

代码语言:javascript
代码运行次数:0
运行
复制
GET /api/user/info HTTP/1.1
Host: api.example.com
Connection: keep-alive
Accept: application/json, text/plain, */*
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

测试工程师需要关注的关键要素:

  • 请求方法(GET/POST/PUT/DELETE等)
  • 请求URL和参数
  • 请求头信息(认证信息、内容类型等)
  • 请求体(对于POST/PUT请求)

5.2 理解HTTP响应结构

HTTP响应示例:

代码语言:javascript
代码运行次数:0
运行
复制
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Date: Wed, 01 Sep 2021 07:23:41 GMT
Content-Length: 125
{
  "status": "success",
  "data": {
    "userId": 12345,
    "userName": "tester",
    "email": "tester@example.com"
  }
}

测试工程师需要关注的关键要素:

  • 状态码(200成功、404未找到、500服务器错误等)
  • 响应头信息(内容类型、缓存控制等)
  • 响应体内容(需要验证其正确性)

5.3 性能数据分析

通过Fiddler可以分析请求的性能特征:

时序统计信息:

  • DNS解析时间:域名解析耗时
  • TCP连接时间:建立TCP连接耗时
  • HTTPS握手时间:SSL/TLS握手耗时
  • 请求发送时间:发送请求数据耗时
  • 服务器响应时间:服务器处理请求耗时
  • 响应接收时间:下载响应数据耗时

性能分析技巧:

  • 关注耗时异常的请求
  • 比较同一请求在不同条件下的性能
  • 使用Timeline视图直观查看请求时间线

5.4 安全数据分析

从安全测试角度,需要关注以下方面:

  • 敏感信息是否明文传输(密码、令牌等)
  • 是否使用适当的加密协议(HTTPS而非HTTP)
  • 认证和授权机制是否合理
  • 是否存在不必要的敏感信息泄露

六、高级调试与 mock 技术

6.1 断点调试技术

Fiddler提供了强大的断点功能,可以中断请求和响应进行调试:

设置请求断点:

  • 在QuickExec框输入"bpu www.example.com"中断指定域名请求
  • 输入"bpu"取消所有请求断点

设置响应断点:

  • 在QuickExec框输入"bpafter www.example.com"中断指定域名响应
  • 输入"bpafter"取消所有响应断点

断点调试应用场景:

  • 修改请求参数测试不同输入条件下的行为
  • 修改响应数据测试前端对不同数据的处理
  • 模拟服务器错误响应测试客户端容错能力

6.2 AutoResponder 模拟技术

AutoResponder是Fiddler最强大的功能之一,允许使用本地文件或预设响应代替实际服务器响应:

基本配置步骤:

  1. 拖拽会话到AutoResponder选项卡
  2. 点击"Add Rule"创建规则
  3. 选择或创建响应文件
  4. 启用"Unmatched requests passthrough"确保不匹配的请求正常通过

常见应用场景:

  • 模拟接口返回数据测试前端表现
  • 模拟错误状态码测试应用容错
  • 替换大型资源(如图片、视频)提高测试效率
  • 模拟尚未开发完成的接口进行前端测试

高级匹配规则:

  • 使用EXACT:前缀进行精确匹配
  • 使用REGEX:前缀使用正则表达式匹配
  • 使用通配符*进行模糊匹配

6.3 Fiddler Script扩展功能

通过Fiddler Script可以自定义Fiddler行为,实现高度定制化的抓包和修改功能:

常见脚本应用:

  • 自动修改特定请求或响应
  • 添加自定义日志记录
  • 实现复杂的AutoResponder逻辑
  • 自定义性能指标计算

示例脚本:在请求头中添加自定义标记

代码语言:javascript
代码运行次数:0
运行
复制
static function OnBeforeRequest(oSession: Session) {
  if (oSession.uriContains("example.com")) {
    oSession.oRequest["X-Custom-Header"] = "FiddlerAdded";
  }
}

七、性能测试与弱网模拟

7.1 网络性能分析

Fiddler提供了多种性能分析工具:

Statistics选项卡:

  • 显示选中请求的性能统计数据
  • 提供多个请求的聚合统计数据
  • 显示网络带宽利用率估算

TimeLine视图:

  • 图形化显示请求发生时间和耗时
  • 直观识别性能瓶颈
  • 支持按时间范围筛选请求

7.2 弱网环境模拟

使用Fiddler可以模拟各种网络条件,测试应用在弱网环境下的表现:

模拟配置步骤:

  1. 打开Rules > Performance > Simulate Modem Speeds
  2. 或使用Customize Rules手动配置网络条件

手动配置网络模拟: 在Customize Rules脚本中修改以下值:

代码语言:javascript
代码运行次数:0
运行
复制
// 上传速度 (bps)
oSession["request-trickle-delay"] = "150"; 
// 下载速度 (bps)
oSession["response-trickle-delay"] = "150";

典型网络条件模拟值:

  • 4G网络:上传/下载延迟为50-100ms
  • 3G网络:上传/下载延迟为100-200ms
  • 2G网络:上传/下载延迟为300-1000ms
  • 极差网络:上传/下载延迟为2000ms以上

八、Fiddler与其他工具集成

8.1 与测试框架集成

Fiddler可以与自动化测试框架集成,增强测试能力:

与Selenium集成:

  • 通过代理配置使Selenium使用Fiddler代理
  • 在测试过程中捕获和分析网络请求
  • 使用AutoResponder模拟网络条件

与Postman集成:

  • 将Fiddler捕获的请求导出为Postman集合
  • 使用Fiddler分析Postman发送的请求

8.2 与持续集成流程集成

虽然Fiddler主要是GUI工具,但也可以通过命令行方式集成到CI流程中:

Fiddler命令行用法:

代码语言:javascript
代码运行次数:0
运行
复制
fiddler.exe /capture /start
fiddler.exe /capture /stop
fiddler.exe /export /format:har /output:output.har

九、常见问题与解决方案

9.1 抓包常见问题

无法捕获HTTPS流量:

  • 确认已安装Fiddler根证书
  • 检查浏览器/设备证书信任设置
  • 尝试重置Fiddler证书(Tools > Options > HTTPS > Actions > Reset Certificates)

移动设备无法连接:

  • 确认PC和设备在同一网络
  • 检查防火墙设置,允许8888端口通信
  • 尝试使用PC IP地址而非主机名

9.2 性能分析问题

Fiddler自身性能影响:

  • Fiddler作为代理会对网络性能有一定影响
  • 对于性能敏感测试,应考虑这种影响
  • 测试完成后记得关闭Fiddler或恢复代理设置

十、最佳实践与总结

10.1 Fiddler使用最佳实践

  1. 规范化抓包流程:建立团队统一的抓包和分析流程
  2. 合理使用过滤:避免捕获过多无关请求提高效率
  3. 注意安全隐私:处理敏感数据时遵守公司安全政策
  4. 定期清理会话:长时间抓包会导致内存占用过高
  5. 结合其他工具:Fiddler与其他测试工具配合使用效果更佳

10.2 测试工程师的Fiddler技能矩阵

根据经验水平,测试工程师应掌握以下Fiddler技能:

初级:

  • 基本抓包和查看能力
  • 简单过滤和搜索
  • 基础性能数据分析

中级:

  • HTTPS和移动设备抓包
  • AutoResponder使用
  • 断点调试技巧
  • 弱网模拟配置

高级:

  • Fiddler Script编写
  • 与自动化测试集成
  • 复杂性能分析
  • 安全测试应用

10.3 总结

Fiddler是软件测试工程师工具箱中不可或缺的利器,掌握了Fiddler的使用,测试工程师能够:

  • 更深入理解系统工作原理
  • 更快速定位和诊断问题
  • 更全面进行接口和性能测试
  • 更有效模拟各种测试环境

希望通过本文的详细介绍,你能全面掌握Fiddler在软件测试中的应用,提升自己的测试技能和效率。记住,工具只是手段,真正的价值在于如何利用工具发现和解决实际问题。

不断练习和实践,将Fiddler变成你的第二双眼睛,看清网络流量背后的真相,成为一名更加优秀的测试工程师。

本文原创于【程序员二黑】公众号,转载请注明出处!

欢迎大家关注笔者的公众号:程序员二黑,专注于软件测试干货分享

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、Fiddler简介与测试中的应用价值
    • 1.1 什么是Fiddler?
    • 1.2 Fiddler在软件测试中的核心价值
  • 二、Fiddler安装与基础配置
    • 2.1 安装Fiddler
    • 2.2 基础配置指南
  • 三、Fiddler界面详解与基本操作
    • 3.1 主界面功能区域介绍
    • 3.2 基本抓包操作
  • 四、数据抓包实战技巧
    • 4.1 浏览器流量抓取
    • 4.2 移动设备流量抓取
    • 4.3 桌面应用程序抓包
    • 4.4 过滤目标请求技巧
  • 五、数据分析与解读
    • 5.1 理解HTTP请求结构
    • 5.2 理解HTTP响应结构
    • 5.3 性能数据分析
    • 5.4 安全数据分析
  • 六、高级调试与 mock 技术
    • 6.1 断点调试技术
    • 6.2 AutoResponder 模拟技术
    • 6.3 Fiddler Script扩展功能
  • 七、性能测试与弱网模拟
    • 7.1 网络性能分析
    • 7.2 弱网环境模拟
  • 八、Fiddler与其他工具集成
    • 8.1 与测试框架集成
    • 8.2 与持续集成流程集成
  • 九、常见问题与解决方案
    • 9.1 抓包常见问题
    • 9.2 性能分析问题
  • 十、最佳实践与总结
    • 10.1 Fiddler使用最佳实践
    • 10.2 测试工程师的Fiddler技能矩阵
    • 10.3 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档