2022软件测试技能 Fiddler HTTP抓包调试工具完整详细教程

系列文章目录

提示:阅读本章时,请先阅读目录,了解整体内容


文章目录


前言

学会并掌握Fiddler 抓包工具,是接口测试的硬性要求,诸多软件测试岗位,也是会标明,是否会fiddler。

为什么要学 fiddler呢?
fiddler 是介于客户端和服务器端之间的代理,即客户端的HTTP请求会先通过fiddler,然后再由fiddler发给服务器,服务器传回数据,也会传到fiddler,然后fiddler再给到客户端,这样,fiddler就充当了中介的作用,因此,fiddler可以实现数据的篡改,拦截。所以,对于接口调试来说,功能就非常强大了,对于请求的参数,返回的数据,都可以进行修改调试,那么,对于我们的测试工作,是极大提高了效率。


一、下载并安装

官网下载:https://www.telerik.com/download/fiddler

下载直接选择,Download 按钮即可
安装直接一路选择Next即可,非常简单,本章不进行详细介绍

二、HTTP 和 HTTPS

在使用抓包工具之前,我们有必要了解一下http协议,和,https协议,这也是面试过程中经常会出现的问题,因为只有了解最底层的网络传输协议,才能够理解抓包的原理

HTTP
超文本传输协议,是一个基于请求与响应,无状态的应用层协议,常基于TCP/IP协议传输数据,互联网上应用最广泛的一种网络协议,所有www文件都必须遵守这个标准
特点:
1.无状态:协议对客户端没有状态存储,对事物处理没有记忆能力,比如访问一个网站,需要进行反复的请求
2.无连接,HTTP/1.1之前,用于无状态特点,每次请求需要通过TCP三次握手/四次握手和服务器建立连接,例如:某个客户端在短时间内多次请求同一个资源,服务器并不能区别是否已经响应过用户的请求,所以,每次都需要重新响应请求,进而导致耗费了不必要的资源
3.基于请求和响应:基本的特性,用客户端发起请求,服务器端进行响应
4.简单快速,灵活
5.通信使用明文,无加密,请求和响应都不会进行验证真实性,无法保证数据的完整

HTTPS
为了解决HTTP协议存在的不安全性,就诞生了HTTPS,安全套接字层超文本传输协议,为了数据传输的安全,在HTTP的基础上,加入了SSL/TLS协议,即数字证书验证,SSL/TLS依靠证书来验证服务器的身份,并为客户端和服务器之间进行通信加密
特点:
1.需要到CA数字证书机构申请SSL证书,一般免费证书机构很少,因而需要一> 定的费用
2. 安全性的ssl/tls加密传输,身份认证网络协议
3. 端口则为443,http端口为80

三、Fiddler 菜单栏

在这里插入图片描述

一共有六个模块,File 文件,Edit 编辑,Rules 规则,Tools 工具,View 视图,Help 帮助

1. File 文件操作

在这里插入图片描述

Capture Traffic 捕获流量

这个就是 Fiddler 开启捕获和关闭捕获的选项,点击之后,就是开启HTTP的捕获,这里实际上,就是左下角那个小图标

在这里插入图片描述

New Viewer 新的视图窗口

注意,这里实际上不是重新打开 Fiddler,而且打开了一个视图窗口,作用的话,一般就是用来加载之前保存好的sseion 文件,然后视图窗口,是不能进行抓包的

Load Archive 加载 SAZ 文件格式

用于,加载之前保存的 ArchiveZip 的saz 文件格式

在这里插入图片描述
在这里插入图片描述

Recent Archives 查看最近保存的saz文件

在这里插入图片描述

Save 保存

在这里插入图片描述

Import Sessions 导入会话

在这里插入图片描述
主要可以导入saz文件格式的会话,以及其他工具获得的会话

Export Sessions 到处会话

在这里插入图片描述

可以到处多种格式的会话

Exit 退出

2. Edit 编辑

在这里插入图片描述

Copy 拷贝

在这里插入图片描述
复制一些选择性的内容

Session(把整个的 session 列表都复制到剪切板里)
Just URL(选中的 session 的 URL 复制到剪切板中)
Header only (把 session 请求头复制到剪切板里)
Full summary(把列表中显示的所有 session 信息复制到剪切板里)
Terse summary(选中 session 的简要说明复制到剪切板里)

Remove 移除

在这里插入图片描述
Selected Sessions 移除选择的
Unelected Sessions 移除没有选择的
All Sessions 移除全部

Undelete 恢复之前移除的

Paste as Sessions 粘贴会话

Mark 标记

在这里插入图片描述

标记会话的颜色

在这里插入图片描述

Unlock for Editing 解锁编辑

在这里插入图片描述

在这里插入图片描述
如果有一些图标是把锁的,勾选之后就是可编辑状态

Find Sessions 查找会话 / 搜索会话

在这里插入图片描述

在这里插入图片描述

Rules 规则

在这里插入图片描述

Hide Image Requests 隐藏图片请求

对于不需要捕获图片资源的请求,可以选择屏蔽掉

Hide CONNECTs 隐藏通道请求

在这里插入图片描述
这些Host 为 Tunnel to 就是通道请求,一般都是没有什么实质作用的请求就可以屏蔽掉

Automatic Breakpoints 自动断点

在这里插入图片描述
Before Requests 请求之前断点
After Responses 请求之后断点
Disabled 取消断点
Ignore Images 忽略图片资源的断点

Customize Rules 脚本规则

在这里插入图片描述
这里可以配置Fiddler的脚本,一些内置函数,常见是用来修改弱网配置,修改网络请求的延迟间隔时间等

Require proxy authentication 代理身份验证

若选中此项,则所有未提交 Require proxy authentication 的请求头的请求会返回 HTTP/407 响应,要求客户安装证书

Apply GZIP Encoding 应用GZIP编码

请求 GZIP 编码,若选中此项,则只要请求包含了 gzip 标识的 Accept-Encoding 请求头就会对除了图片以外的所有相应使用 GZIP HTTP 进行压缩

Remove All Encoding 移除所有编码

若选中此项,会删除所有请求相应的 http 内容编码和传输编码

Hide 304s 隐藏304状态的会话

在session框中隐藏所有的 304 的 session

Request Japanese Content 请求日语

把所有的 Accept-Encoding 请求头设置替换成 ja 标示,标示客户端希望以日语的形式发送

Automatically Authenticate 自动进行身份验证

User-Agents 用户代理

在这里插入图片描述

选择相应的用户代理模式,默认是选择 disabled。那什么是 user-agent 呢?ua 是头域的组成部分,简单来说就是你向访问的网站提供你所用的浏览器的类型等信息,ua 字符串在每次浏览器 http 请求时发送到服务器端

Performance 性能

在这里插入图片描述

此项提供影响 web 性能的简单选项

  1. 若选中了 simulate modem speeds,它会设置所有后续 session 的 flag,把 request-trickle-delay 标志设置为 300,所有上传数据延迟 300ms/kb,若把 response-trickle-delay 标志位设为 150,会使所有下载数据延迟 150ms/kb
  2. 若选中了 disable caching,将会删除所有 If-None-Match和If-Modified-Since 请求头,并添加 Pragma:no-cache 请求头,选中该项还会删除响应中的所有 Expires 头,并把 Cache-Control 响应头设置成 no-cache,该项无法阻止浏览器重用在所用该选项之前所缓存的响应,在选中该选项后,为了得到最佳结果,最好是清空浏览器中缓存
  3. 若选择 Catch Always Fresh 会自动响应所有包含 http/304 响应的有条件的 http 请求,表示客户端缓存是最新的,当访问的站点无法正确的设置缓存失效日期时,该选项可以极大的提高性能。

3. Tools 工具

在这里插入图片描述

Options 选项

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
这里主要配置https的捕获,需要安装ssl证书

在这里插入图片描述
在这里插入图片描述
这里主要是配置Fiddler代理模式,用于手机wifi代理的配置,用于捕获手机,app的http请求

WinINET Options 快捷打开Internet属性

在这里插入图片描述
可快速进行局域网设置的配置

Clear WinINET Catch 清空Internet缓存

清空 IE 和其他应用中所使用的 WinINET 的缓存文件

Clear WinINET Cookies 清空Internet Cookies

清空 IE 和其他应用中所使用的 WinINET 的 Cookies 文件

TextWizard

文本向导工具,是一个非常好用的可以轻松将 text 文本 encode 和 decode,即编码和解码

在这里插入图片描述

这里可以方便的,调试各种加密方法,Base64,MD5,SHA1等

在这里插入图片描述

Compare Sessions 比较 session

可以在 session 框中选中两个 session,然后点击此按钮,可以来比较两个 session,正常情况下需要安装插件

Sandbox 官方文档

fiddler sanbox 官方文档

Reset Script 重置脚本

View IE Cache 打开本地文件系统,查看ie缓存

HOSTS 主机重定向工具

若在其中勾选 Enable 框,然后在下面加入 host 配置,点击保存之后,这个配置并不会修改到本地 hosts 中,取消勾选就会失效,若点击 Import Windows Hosts File 将会导入本地的 host 文件内容

在这里插入图片描述

在这里插入图片描述

4. View 视图

在这里插入图片描述

Show Toolbar 显示工具栏

默认是勾选的

Default Layout 默认布局,左 | 右

默认 layout,session 在左,请求和响应在右边的上下处

Stacked Layout 上 | 下

session 在上,请求在下方

Wide layout 上 | 下

session 在上,请求和响应在下方的左右处

Tabs 标签页面

其中有三个标签可以打开,分别是 Preferences(fiddler 偏好属性),AutoSave(fiddler 自动保存的设置),APITest(api 的测试)

在这里插入图片描述
Preferences(fiddler 偏好属性)
在这里插入图片描述
AutoSave(fiddler 自动保存的设置)

在这里插入图片描述
APITest(api 的测试)

在这里插入图片描述

在这里插入图片描述

Statistics 查看一个请求的统计数据

在这里插入图片描述

Inspectors:嗅探

用来查看会话的内容,上面是请求,下面是响应

在这里插入图片描述

Composer 设计构造

在 Composer 中进行请求的修改,可以把 session 框中的数据先清除,然后点击 Composer 中的 Excute 按钮来发送请求,请求出现在 session 框中

在这里插入图片描述

Minimize To Tray 最小化托盘

Stay On Top 保持置顶

Squish Session List 挤压 session 框

AutoScroll Session List 自动滚动会话列表

默认是勾选此项的,勾选此项后,session 框中的每出现新的 session,session 框中就会不断向下滚动,若不勾选此项,就很方便具体某一个 session 的定位,即使出现了新的 session 也不会自动向下滚动

Refresh 刷新功能

按 F5 刷新

5. Help 帮助

在这里插入图片描述

Help 官网

进入 fiddler 的帮助的网页

Get Fiddler Book 网页

fiddler book 的网页

Discussions fiddler 讨论网页

这个需要魔法上网

Http Preferences 网站

http preferences 相关网站

Troubleshoot

会捕获所有请求,对于哪些被过滤的请求用删除线表示出来并给出原因,使用时候会打开一个网页

Get Priority Support 购买服务

打开网页购买 fiddler 的优先级服务

Check for Updates 更新

检查软件更新情况

Send Feedback 意见反馈

About 关于

当前 fiddler 的相关信息

四、工具栏

在这里插入图片描述

1. comment 备注

在这里插入图片描述
选中一个会话,可以添加备注

在这里插入图片描述
在这里插入图片描述

2. Replay 重新发起请求

在这里插入图片描述
选中一个或多个会话,可以重新发起请求

在这里插入图片描述

3. Remove 移除会话

在这里插入图片描述

在这里插入图片描述
Remove all 即移除全部,剩下的话,就是移除相对应的类型

在这里插入图片描述

4. Go 继续

在使用断点的时候,可以按此按钮,进行下一步操作

在这里插入图片描述
在这里插入图片描述

5. Stream 流模式

流模式是一种实时通信模式,请求之后实时的返回,更接近浏览器真实行为,但 fiddler 默认是缓冲模式而不是流模式
在这里插入图片描述

6. Decode 解码

在这里插入图片描述
解码,这里可以将 session 中乱码进行解码方便查看

7. Keep All sessions 显示多少个会话

All sessions 显示所有会话
在这里插入图片描述

可以选择显示会话的数量

在这里插入图片描述

8. Any Process 只捕获

在这里插入图片描述
点击此按钮并且拖动到你想要捕获的浏览器从而实现只捕获某个浏览器的请求

在这里插入图片描述

9. Find 查找会话

在这里插入图片描述

在这里插入图片描述
匹配的内容,默认会用黄色标记

10. Save 保存会话

在这里插入图片描述

这里会保存所有会话

在这里插入图片描述

11. capture 截图

在这里插入图片描述
倒计时5秒之后,会截图当前屏幕

在这里插入图片描述

12. 时钟

在这里插入图片描述

可以手动计时,鼠标左键开始 / 结束,,鼠标右键清除

13. 用浏览器打开

在这里插入图片描述
选择会话之后,可以用某个浏览器打开

14. Clear Cache

在这里插入图片描述

清除 WinINET 的缓存,按住 CTRL 键点击可以清除已经存在的 cookies

15. TextWizard 文本调试

此工具可以将某一编码过的或者未编码过的字串拿到此处解码和编码,在菜单栏中的 Tools 中也有此项可以打开

在这里插入图片描述

16. Tearoff 分离

此功能用来将右边栏里的请求和响应部分给单独拆成一个新窗口,方便视察

在这里插入图片描述
在这里插入图片描述

关闭分离出来的窗口之后,会自动恢复

17. Online 显示主机信息

在这里插入图片描述
在这里插入图片描述

五、底部快捷栏

在这里插入图片描述

1. Capturing 捕获状态

在这里插入图片描述
可以控制 Fiddler 的捕获状态,开启与关闭

此处与菜单栏中 File→Capture Traffic 效果是一致的,默认底端状态栏此处是有 Caturing,有它才表示 fiddler 捕获请求

2. All Processes

这里有 All Processes,Web Browsers,Non-Browser,Hide All 几个选项,这个几个选项顾名思义,但要注意的是这些不是筛选当前 session 框中的 在这里插入图片描述
session,而是选中需要筛选的状态之后,后面的请求会按照此状态来筛选

在这里插入图片描述

3. 断言

在这里插入图片描述
第一次点击时,向上的代表,断言请求之前

在这里插入图片描述

第二次点击时,向下的代表,断言请求之后

第三次点击即消失,代表取消

跟这里的选项是一致的操作

在这里插入图片描述

六、Sessions 图标

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

七、Session 右键弹出框

在这里插入图片描述

1. Decode Selected Sessions 解码选中的session

这里 Decode Selected Sessions 是将选中的 session 进行解码,这样在响应中出现的乱码也可以成功被解码

2. AutoScroll Session List 新增自动滚动

AutoScroll Session List 是默认勾选,session 滚动条自动滑动

3. Copy 拷贝

可以 copy 一个 session 中各个你需要的东西

在这里插入图片描述

4. Save 保存

可以保存相应的文件

在这里插入图片描述

5. Remove 移除

在这里插入图片描述

6. Filter Now 过滤当前 session

在这里插入图片描述

可以根据当前这个会话的一些信息,进行一键屏蔽

7. Comment 备注

8. Mark 标记

将选中的 session 标记成不同的颜色

在这里插入图片描述

9. Replay 请求重发

在这里插入图片描述

10. Select 选择需要的 session

在这里插入图片描述

11. Compare 比较

选中两个 session 进行比较

12. COMETPeek

COMETPeek 命令会保留正在执行的响应的“快照”,在响应完成前就可以查看部分内容。当 web 应用采用 COMET 模式以流式向客户端返回数据时,可以使用该命令。由于“流式”的含义就是永不结束,直有当服务端停止连接后,Fiddler 才会返回响应

13. Abort Session 终止当前正在执行的请求

14. Clone Response 克隆响应

当 session 列表选中两个 session,并且其中一个 session 在断点处终止,而另一个 session 已经运行完成时才有用,该命令会把已完成的 session 响应拷贝给暂停运行的 session

15. Unlock For Editing 解锁编辑

使 session 的请求和响应都可以在 Inspector 中编辑,这个还是蛮有用的

16. Inspect in New Window 新窗口查看

在一个新的窗口中来查看请求信息

17. Properties 属性

session 的属性窗口,显示当前 session 的属性

八、 右侧功能栏

在 request 栏中有 9 个大的标签页,分别是 Inspector,AutoResponder,Composer,Fiddler Orchestra Beta,Fiddler Script,Log,Filters,Timeline,Statistics,按照这个顺序讲解一下

1. Inspector 查看请求和响应

在这里插入图片描述
这里是查看某个 session 的请求和响应,响应的话专门置为一栏讲解,请求的话又可分为 10 个小的标签页。并且右键点击这 10 个标签页可以查看 Inspector的属性还有诸如 copy as image 和隐藏标签页的功能

下面是请求体中选项的内容

Headers
这里是请求头中的信息,包括 cache,cookies 等信息,点击右边黄色的 Raw 可以以新窗口的形式来显示原生头信息,而 Header Definitions 可以查看 fiddler 官方的头信息的网页版帮助文档,可能需要魔法上网

在这里插入图片描述

TextView
方式显示传送过去的请求体数据
在这里插入图片描述
SyntaxView
方式显示传送过去的请求体数据

在这里插入图片描述

webforms
网页表单方式显示传送过去的请求体数据
在这里插入图片描述

Hexview
十六进制视图的方式显示传过去的数据

在这里插入图片描述
Auth
显示请求中的身份认证信息

在这里插入图片描述
cookies
显示该请求的cookies信息

在这里插入图片描述

raw
显示该原生的请求体

在这里插入图片描述
json
json 显示请求

在这里插入图片描述

xml
xml 显示请求

在这里插入图片描述

2. AutoResponder 重定向

在这里插入图片描述

重定向,本机代替服务器发送响应

可以在左边把会话拖过来,然后进行修改,修改完保存之后,重新打开该网站,就会显示刚才修改的文件内容

当然,也可以直接通过文件导入的方式,直接替换,相当于访问某个网站,然而是直接访问本机文件

在这里插入图片描述

3. Composer

Composer和 Inspector 都可以篡改数据,Inspector是篡改输入的数据,但是 Composer 却可以篡改 Cookies 中的数据,并通过 Execute 发送重新篡改后的请求,界面上的控件比较简单

在这里插入图片描述

也是一样,把会话拖过去,即可

4. FiddlerScript

在这里插入图片描述

fiddler 在 Web 前端开发时候经常使用,用户再修改请求头信息时候经常需要设置断点,但是设置后会在断点处停下,之后点击重启才行,而 fiddler script 本质是 JScript.NET 语言写的脚本文件 CustomRules.js,语法类似 C#,若果是修改 CustomRules.js 其实可以很容易的修改 http 的请求的应答,不用中断程序,还可以针对不同 URI 做特殊处理,甚至可以根据开发者的需要去定制菜单,功能可以说是非常强大的。脚本文件 CustomRules.js 位于 C:\Documents and Settings[your user]\My Documents\Fiddler2\Scripts\CustomRules.js 下,你也可以在 Fiddler 中打开 CustomRules.js 文件, 启动 Fiddler, 点击菜单 Rules->Customize Rules。

5. Log 日志

查看 fiddler 的 event log 信息,不同请求的 log 信息应该是一致的,每当更新一次页面,event log 会自动刷新一次,若将上方的 any process 拖动到指定浏览器后,fiddler 会单独记录该浏览器页面的通信信息

6. Filters 过滤器

在这里插入图片描述

这个可以用来过滤 session 中的请求

翻译
在这里插入图片描述

7. Timeline 响应时间轴

在这里插入图片描述

可以查看请求响应的时间轴

8. Statistics 统计

在这里插入图片描述

里头包含该 session 请求的统计数据,包括请求次数,请求与响应字节数,信息头和体各有多少字节,以及连接时间点,响应信息类型,最后,下面有个全球性能估计的数据:

9. 下方的Responder 栏

其他选项基本上跟上面的差不多

在这里插入图片描述

这里有个特殊的

Transformer:这里显示了响应体的字节数,这里头的 Chunked Transfer-Encoding 和 HTTP Compression 是分块传输编码和 HTTP 压缩技术,这就需要 http 的知识了

不过这里,最常用的是,在打断点之后,需要修改请求后的内容,然后并保存,但是,有时候,会是编码问题,所以,需要先取消编码,编辑完之后,再恢复之后再进行保存

在这里插入图片描述

然后再进行恢复
在这里插入图片描述


更新日志

提示:会持续更新优化

20220704,下载并安装,HTTP和HTTPS,Fiddler 菜单栏-File文件操作,Edit 编辑,Tools工具,View 视图,Help 帮助,工具栏,底部快捷栏,Sessions图标,Session 右键弹出框,右侧功能栏

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值