更多课程 选择中心

软件测试培训
达内IT学院

400-111-8989

抓包工具那么多,为啥选择Fiddler?

  • 发布:软件测试培训
  • 来源:软件测试教程
  • 时间:2020-07-03 15:54

抓包工具有很多,比如常用的抓包工具Httpwatch,通用的强大的抓包工具Wireshark,为什么使用fiddler?原因如下:1、Wireshark是通用的抓包工具,但是比较庞大,对于只需要抓取http请求的应用来说,似乎有些大材小用。2、Httpwatch也是比较常用的http抓包工具,但是只支持IE和firefox浏览器(其他浏览器可能会有相应的插件),对于想要调试chrome浏览器的http请求,似乎稍显无力而Fiddler是一个使用本地 127.0.0.1:8888 的 HTTP 代理,任何能够设置 HTTP 代理为 127.0.0.1:8888 的浏览器和应用程序都可以使用 Fiddler。那么想要精通抓包,首先必须对协议比较了解,所以下面我们首先了解一下协议。

一、HTTP协议

1、HTTP协议

支持客户/服务器模式。简单快速,无连接,无状态。

HTTP协议:默认端口:80

HTTPS=HTTP协议+SSL安全传输协议:默认端口443

2、HTTP协议请求详解

请求行,请求头,空一行,请求正文

Accept 指定客户端能够接收的内容类型

Accept-Charset 浏览器可以接受的字符编码集。

Accept-Encoding 指定浏览器可以支持的web服务器返回内容压缩编码类型。

Accept-Language 浏览器可接受的语言

Cookie HTTP请求发送时,会把保存在该请求域名下的所有cookie值一起发送给web服务器。

Content-Length 请求的内容长度

Content-Type 请求的与实体对应的MIME信息

Date 请求发送的日期和时间

Host 指定请求的服务器的域名和端口号

Referer 先前网页的地址,当前请求网页紧随其后,即来路

User-Agent 发出请求的用户信息

3、HTTP协议响应详解响应行,响应头,空一行,响应正文响应头的信息和请求头很类似,这里不在累述!

二、Fiddler简介和工作原理

1、Fiddler简介

Fiddler是位于客户端和服务器端的HTTP代理。

目前最常用的http抓包工具之一。功能非常强大,是web调试的利器。

工作中常用场景:接口调试、接口测试、线上环境调试、判断前后端Bug、mock测试、弱网测试。

2、Fiddler下载和安装

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

Fiddler证书生成器下载地址:http://www.telerik.com/docs/default-source/fiddler/addons/fiddlercertmaker.exe?sfvrsn=2

Fiddler安装注意事项:不要安装在有中文和特殊字符的目录

安装注意事项:不要安装在有中文和特殊字符的目录

3、Fiddler的工作原理:

Fiddler是以代理web服务器的形式工作的,它使用代理地址:127.0.0.1,端口:8888。当Fiddler退出的时候它会自动注销,

关掉Fiddler、谷歌和IE浏览器的代理服务器会自动取消。如果Fiddler非正常退出,因为Fiddler没有自动注销,会造成网页无法访问。解决的办法是重新启动Fiddler。

三、Fiddler六大块详解

(1) Fiddler回话列表

1.请求的ID编号、

2. http响应状态码、

3.会话使用的协议、

4.请求发送到的服务器主机名、

5.数据包在服务器中的路径和文件、

6.响应body的字节数。

7.响应头信息Cache-Control的值、

8、响应头信息Content-Type的值、

9.发起请求的本地windows进程、

10.注释、

11.自定义备注。

(2) Fiddler功能页签

Statistics页签:通过该页签,用户可以通过选择多个会话来得到这几个会话的总的信息统计,比如多个请求传输的字节数。访问页面时选择第一个请求和最后一个请求,可获得整个页面加载所消耗的总体时间。从条形图表中还可以分别出哪些请求耗时最多,从而对页面的访问进行速度性能优化。

inspectors页签:它提供headers、textview、hexview,Raw等多种方式查看一条http请求的请求和响应,它分为上下两部分:上部分为请求展示,下部分为响应展示。

AutoResponse页签:它可以抓取在线页面保存到本地进行调试,大大减少了在线调试的困难,可以让我们修改服务器端返回的数据,例如让返回都是404的数据包读取本地文件作为返回内容。

composer页签:支持手动构建和发送HTTP,HTTPS和FTP请求,我们还可以从回话列表中拖曳回话,把它放到composer选项卡中,当我们点击Execute按钮时则把请求发送到服务器端。

FiddlerScripts页签:打开Fiddler脚本编辑。

log页签:打印日志

Filters页签:过滤器可以对左侧的数据流列表进行过滤,我们可以标记、修改或隐藏某些特征的数据流。

Timeline页签:时间轴,也称为Fiddler的瀑布图,展示网络请求时间的功能。每个网络请求都会经历域名解析、建立连接、发送请求、接受数据等阶段。把多个请求以时间作为X轴,用图表的形式展现出来,就形成了瀑布图。在左侧会话窗口点击一个或多个回话,Timeline 便会显示指定内容从服务端传输到客户端的时间。

(3) 菜单栏

File菜单

1、Capture Traffic:可以控制是否把Fiddler注册为系统代理。

2、New Viewer:打开一个新的fiddler窗口

3、Load Archive:用于重新加载之前捕获的以SAZ文件格式保存的数据包。

4、Save:支持以多种方式把数据包保存到文件中。

5、Import Sessions...:支持导入从其他工具捕获的数据包,也支持导入以其他格式存储的数据包。

6、Export Sessions...:把Fiddler捕捉到的回话以多种文件格式保存。

7、Exit:取消把Fiddler注册为系统代理,并关闭Fiddler。

Edit菜单

1、Copy:复制会话。

2、Remove:删除会话。

3、Select All:选择所有会话。

4、Undelete:撤销删除会话。

5、Paste as Session把剪贴板上的内容粘贴成一个或多个模拟的会话。

6、Mark:选择一种颜色标记选中会话。

7、Unlock for Editing 解锁会话。

8、Find Session...打开Find Session窗口,搜索捕获到的数据包。

Rules菜单

1、Hide Image Request:隐藏图片回话。

2、Hide CONNECTS:隐藏连接通道回话。

3、Automatic Breakpoints:自动在[请求前]或[响应后]设置断点。Ignore Image触发器控制这些断点是否作用于图片请求。

4、Customize Rules...:打开Fiddler脚本编辑窗口。

5、Require Proxy Authentication:,要求客户端安装证书。该规则可以用于测试HTTP客户端,确保所有未提交Proxy-Authorization请求头的请求会返回HTTP/407响应码。

6、Apply GZIP Encoding:只要请求包含具有gzip标识的Accept-Encoding请求头,就会对所有响应使用GZIP HTTP进行压缩(图片请求除外)。

7、Remove All Encoding:删除所有请求和响应的HTTP内容编码和传输编码

8、Hide 304s:隐藏响应为HTTP/304 Not Modified状态的所有回话。

9、Request Japanese Content:选项会把所有请求的Accept-Encoding请求头设置或替换为ja标识,表示客户端希望响应以日语形式发送。

10、User-Agents:把所有请求的User-Agent请求头设置或替换成指定值。

11、performance:模拟弱网测试速度。

Tools菜单

1、Options... : 打开Fiddler选项窗口。

2、WinINET Options... : 打开IE的Internet属性窗口

3、Clear WinINET Cache:清空IE和其他应用中所使用的WinINET缓存中的所有文件。

4、Clear WinINET Cookies:清空IE和其他应用中所发送的WinINET Cookie

5、TextWizard...:选项会启动TextWizard窗口,对文本进行编码和解码。

6、Compare Session:比较回话。

7、Reset Script:重置Fiddler脚本。

8、Sandbox:打开http://webdbg.com/sandbox/

9、View IE Cache: 打开IE缓存窗口。

View菜单

1、Show Toolbar:控制Fiddler工具栏是否可见

2、Default Layout、Stacked Layout、Wide Layout三种界面布局

3、Minimize to Tray:最小化Fiddler到系统托盘(快捷键:CTRL+M )

4、Squish Session List:控制回话列表是否水平收缩。

5、AutoScroll Session list:添加新的回话时,自动滚动到回话列表底部

(4) 工具栏详解:

1.备注功能

2.重新发送请求,快捷键:R键。

3.删除请求

4.当有请求前断点时,点击去发送请求。

5.流模式。(默认是缓冲模式)

6.解码

7.保持回话的数量。

8.选择你想要抓包或者监听的程序

9.查找

10.保存所有会话,文件名以.saz为扩展名

11.截图

12.计时器

13.快捷的打开IE浏览器

14.清除IE缓存

15.文本的编码解码工具

16.分离面板

17.MSDN查询

18.本机的信息

(5) 状态栏详解:

1、显示的Fiddler是否处于捕捉状态(开启/关闭状态),可以点击该区域切换。

2、显示当前捕捉哪些进程。

All Processes 捕获所有进程的请求

Web Browsers 捕获 Web 浏览器的请求,应该特指 IE

Non-Browser 捕获非 Web 浏览器的请求

Hide All 隐藏所有请求

3、显示当前断点设置状态,通过鼠标点击切换。有三种:

(1) 不设置断点

(2) 所有请求在断点处被暂停

(3) 所有响应在断点处被暂停

4、显示当前共捕获了多少回话(如:300,表示共捕获了300个会话,如:10/300,表示当前选择10个会话,共捕获300个会话)。

5、第五区块,描述当前状态。

如果是刚打开Fiddler,会显示什么时间加载了CustomRules.js;如果选择了一个会话,会显示该会话的URL;如果在命令行输入一个命令,就会显示命令相关信息。

(6)Fiddler命令行可以输入命令操作回话列表,常见命令有:

help 打开官方的使用页面介绍,所有的命令都会列出来。

cls 清屏 (Ctrl+x 也可以清屏)

select 选择所有相应类型的回话(如select image或select css)。

sometext 查找字符串并高亮显示查找到的会话。

>size 选择请求响应大小小于size字节的会话。

=status/=method/@host 查找状态、方法、主机相对应的会话

1uit 退出fiddler

bpafter xxx 中断URL包含指定字符的全部回话响应

bps xxx 中断HTTP响应状态为指定字符的全部回话响应。

bpv xxx 中断指定请求方式的全部回话响应

bpm xxx 中断指定请求方式的全部回话响应。等同于bpv?xxx

bpu xxx: 与bpafter类似。

四、Fiddler过滤器

选择Filters页签,勾选use Filters使用过滤器。

Fiddler过滤指定域名

1、第二个下拉框[-No Host Filter-]选择[Show Only The Following Hosts]只显示过滤的域名。

2、如只监控百度,在下面的输入框里填上:www.baidu.com

Fiddler过滤指定路径

1、勾选 Request Headers 中的[show only if URL contains]。

2、勾选Request Headers中的【Show only if URL contains】输入正则:REGEX:( insx).*\.?baidu.com/home.*

只显示路径为:baidu.com/Home ?的数据包。

Fiddler过滤指定文件格式

1、勾选Request Headers中的【Hide if url contains】过滤项,

2、在后面输入:REGEX:( insx)/[^\ /]*\.(css|ico|jpg|png|gif|bmp|wav|js)(\?.*)?$

免责声明:内容来源于公开网络,若涉及侵权联系尽快删除!

预约申请免费试听课

填写下面表单即可预约申请免费试听!怕钱不够?可就业挣钱后再付学费! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:什么是测试驱动开发及其重要性
下一篇:软件测试架构师需要具备哪些技能?

软件测试原则的6个基本原则

软件测试需要学习什么?

软件测试需要学习什么技术?

测试一个接口的面试题你知道吗?

选择城市和中心
黑龙江省

吉林省

河北省

陕西省

湖南省

贵州省

云南省

广西省

海南省