前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >接口-Fiddler-​功能介绍(二)

接口-Fiddler-​功能介绍(二)

作者头像
wangmcn
发布2022-07-25 13:40:56
1.7K0
发布2022-07-25 13:40:56
举报
文章被收录于专栏:AllTests软件测试

功能介绍(二)

第1章 监听类型

四种状态分别对应:监听所有请求、监听浏览器请求、监听非浏览器请求、全部隐藏

第2章 命令行

2.1?sometext

在已有的sessions中,将URL中包含sometext的session项高亮。

例如:?fiddler,搜索带有fiddler关键字的链接地址。

2.2>size或<size< span=""></size<>

在当前的sessions中,高亮选择Response的Body大小大于或小于size指定的值。

例如:> 40000 将Response的body值大于40kb

<5k< span="">将Response的body值小于5kb

2.3=status

在当前所有的sessions中,将Result列中等于status值的session项高亮,即将与status值相同的http状态码高亮。

例如:=301即将http状态码为301的session是高亮。

2.4=method

在当前所有的sessions中,将Request请求中的http method与命令行中method值相同的session项高亮。

例如:=POST即将method为POST的session项高亮。

2.5@host

在当前的sessions中,将Request请求中host项中包含命令行@后内容的sessions项高亮。

例如:@baidu.com 将www.baidu.com、login.baidu.com等sessions项高亮。

2.6bold

将新记录的sessions,如果URL中包含sometext内容,就将该sessions的字体加粗。如果要取消加粗,直接输入bold即可。

例如:bold baidu.com,新记录的sessions中,URL内包含baidu.com字样的session字体加粗。

2.7bpafter

在URL中包含sometext内容的sessions的Resopnse位置设置断点,即该sessions的After Response位置。使用这个命令后,会将之前设置的策略清除。取消该拦截项,直接输入bpafter即可。

例如:bpafter du,拦截所有URL中包含du内容的Response返回值。

2.8bps

拦截所有状态码与sometext值相同sessions的Response返回值。使用这个命令后,会将之前设置的策略清除。取消该拦截策略,直接输入bps即可。

例如:bps 404,将所有返回404请求的Response全部拦截。

2.9bpv或bpm

拦截所有发送的http method与sometext内容相同的Session网络请求。使用这个命令后,会将之前设置的策略清除。取消拦截策略,直接输入bpv或pbm即可。

例如:bpv POST,会拦截所有以POST方法发送的网络请求。

2.10bpu

在URL中包含sometext内容的sessions的Request位置设置断点,即该session的before request位置。使用这个命令后,会将之前设置的策略清除。取消该拦截策略,直接输入bpu即可。

例如:bpu /myservice.asmx,拦截所有URL中包含/myservice.asmx内容的Request请求。

2.11cls或clear

cls或clear清除列表中所有的session,功能与Ctrl+X相同。

例如:cls

2.12dump

将当前获取到的所有sessions保存成zip文件,并保存到我的文档中的\ Fiddler2\Captures文件夹中,命名为dump.saz。

例如:dump

2.13g或go

恢复所有被设置断点的session。

例如:g

2.14help

打开QuickExec的帮助页面。

例如:help

2.15hide

将Fiddler隐藏到系统状态栏中。

例如:hide

2.16urlreplace

自动将任意URL中的内容sometext1替换为sometext2。使用这个命令后,会将之前设置的策略清除。取消该拦截策略,直接输入urlreplace即可。

例如:urlreplace baidu qq,即如果发送的网络请求为www.baidu.com,通过该策略会自动更改为www.qq.com,并发送出去。

2.17start

将Fiddler设置为系统代理。

例如:start

2.18stop

取消Fiddler为系统代理。

例如:stop

2.19show

可以将已被隐藏的Fiddler置前。在Fiddler的安装目录下执行该命令需要使用到ExecAction.exe这个程序。

例如:show

2.20select MIME

在当前所有的Sessions中,将header的Content-Type字段包含sometext内容的sessions高亮。可用于选择文件格式等。

例如:select image,即将所有网络请求中,Content-Type字段包含image的sessions高亮。

2.21select HeaderOrFlag PartialValue

高亮SessionFlag或Header中包含指定sometext内容的session。

例如1:select text abc,即在名为text的SessionFlag中,高亮内容为abc的Session。

例如2:select @Response.Set-Cookie baidu.com,即在所有Session的Response中,查找name为Set-Cookie值为baidu.com的Session,并高亮。

例如3:select @Request.X-Requested-With XMLHttpRequest,即在所有的Session的Request中,查找name为X-Requested-With值为XMLHttpRequest的session,并高亮。

例如4:select @Request.X-Requested-With \*,即在所有的Session的Request中,查找name为X-Requested-With且为任意值的session,并高亮。

2.22allbut或keeponly

隐藏所有除Content-Type内容包含sometext的session项。

例如:allbut xml,隐藏所有Content-Type为非xml的session项。

2.23quit

关闭 Fiddler。

例如:quit

2.24!dns hostname或者!nslookup hostname

进行目标域名为sometext的DNS查找,并在LOG选项卡上将结果输出。

例如:!dns www.baidu.com,即将www.baidu.com对应的IP地址解析并输出。

2.25!listen PORT [CERTHOSTNAME]

在另一个端口增设一个监听器,可选安全的HTTPS证。

例如:!listen 8889,即可同时截获通过8889端口的网络请求。

第3章 断点

断点可以直接点击Fiddler下图的图标位置,就可以设置全部请求的断点,断点的命令可以精确设置需要截获哪些请求。

共三种状态:

1、点击一下截获全部请求

箭头向上:表示断点请求。此时客户端的请求是无法直接到达目标服务器的,需要手动控制。

2、点击两下截获全部请求与返回

箭头向下:表示断点响应。此时目标服务器的响应是无法直接到达客户端的,需要手动控制。

3、点击三下解除断点设置

空白:不设置断点。

一、设置断点,修改请求区域操作:

1、访问接口地址,设置断点请求;

例如:访问百度首页后,输入“百度”后,点击百度一下。

此时打开Fiddler,点击一下断点,截获全部请求,断点图标为箭头向上。

2、点击对应的会话请求;

刷新一下刚才的百度搜索页面。

3、查看请求报文信息;

此时Fiddler截获到了刚才刷新后的请求信息,可以看到请求区域参数里有之前所输入的关键字“百度”。

4、修改请求内容;

在请求区域将”百度”修改为”百度一下”。

5、完成断点,放行,把该请求发送给目标服务器。

点击Run to Completion,放行该请求。

此时之前的搜索关键字“百度”变为了“百度一下”。

二、设置断点,修改响应区域操作:

1、访问接口地址,设置断点请求;

例如:访问百度首页。

此时打开Fiddler,点击两下断点,截获全部请求与返回,断点图标为箭头向下。

2、点击对应的会话请求;

刷新一下刚才的百度搜索页面。

3、查看响应报文信息;

此时Fiddler截获到了刚才刷新后的请求与响应信息,可以看到响应区域参数里有关键字“百度一下”。

4、修改响应内容;

在响应区域将”百度一下”修改为”百度一下下”。

5、完成断点,放行,把该响应发送给目标服务器。

点击Run to Completion,放行该响应。

此时之前的搜索关键字“百度一下”变为了“百度一下下”。

第4章 行数

选择的行数/总行数

例如:选择3行,总行数65

第5章 请求地址

显示所选择的请求地址,由Protocol + Host + URL 拼接而成。

第6章 请求列表

请求列表的信息分别有:结果(Result),协议(Protocol),主机名(Host),网页地址(URL),内容大小(Body),缓存(Caching),响应的HTTP内容类型(Content-Type),请求所运行的程序(Process),注释(Comments),自定义(Custom)等。

名称

含义

#

抓取HTTP Request的顺序,从1开始,以此递增

Result

HTTP状态码

Protocol

请求使用的协议,如HTTP/HTTPS/FTP等

Host

请求地址的主机名

URL

请求资源的位置

Body

该请求的大小

Caching

请求的缓存过期时间或者缓存控制值

Content-Type

请求响应的类型

Process

发送此请求的进程:进程ID

Comments

允许用户为此回话添加备注

Custom

允许用户设置自定义值

会话条目的默认文本颜色来源于HTTP状态(红色表示错误,黄色表示认证需求),流量类型(CONNECT表示灰色)或响应类型(CSS为紫色,HTML为蓝色,脚本为绿色,图像为灰色)。您可以使用FiddlerScript中的ui-color标志覆盖会话的文本颜色。

每个会话都标有一个图标以供快速参考:

结果(Result)是请求是否成功的代码。最常见的代码包括:

200—成功。请求已发送且响应已成功接收。

400—坏请求。当目的服务器接收到请求但不理解细节所以无法处理时发生。

404—页面找不到。如果目标API已移动或已更新但未保留向后兼容性时发生。

500—内部服务器错误。服务器端发生了某种致命错误,且错误并被服务提供商捕获。

第7章 请求与返回相关信息

工具最右方的是请求与返回相关信息的查看器,提供了数据多方面的查看方式。

7.1Statistics

统计信息,显示当前用户选择的Sessions的汇总信息,包括:选择的Sessions总数、发送字节数、接收字节数、响应类型的汇总表、世界各地通过不同请求方式所需的时间等。

Statistics页签底部图表:

1、Show Chart可以将汇总结果显示为一个饼状图,按照响应类型,在饼图中显示不同的比例和不同的色块。

2、Copy this chart可以将该饼图复制到剪贴板,粘贴到图形处理软件或者word中。

3、Collapse Chart收起饼图展示。

关于HTTP请求的性能分析:

我们可以从中看出一些基本性能数据:如DNS解析的时间消耗是33ms,建立TCP/IP连接的时间消耗是3ms等等信息。

7.2Inspectors

检查器,页签允许你用多种不同格式查看每个请求和响应的内容。

信息分为上下两个部分,上半部分是请求部分,下半部分是响应部分。对于每一部分,提供了多种不同格式查看每个请求和响应的内容。

一、请求(Request)部分:

1、Headers:显示客户端发送到服务器的HTTP请求的header,显示为一个分级视图,包含了 Web 客户端信息、Cookie、传输状态等。

2、Textview:显示POST请求的body部分为文本,HTML/JS/CSS 使用 TextView 可以看到响应的内容。

3、SyntaxView:显示POST请求的body部分为文本,语法格式。

4、WebForms:显示请求的GET参数和POST的body内容,特别说明,这里body应该是 application/x-www-form-urlen-coded格式。

5、HexView:用十六进制数据显示请求。

6、Auth:显示header中的Proxy-Authorization和Authorization信息。

7、Cookies:显示Cookie信息。

8、Raw:将整个请求显示为纯文本。

9、JSON:显示Json格式。

10、XML:如果请求的body是XML格式,就是用分级的XML树来显示它。

二、响应(Response)部分:

1、Transformer:显示响应的编码信息。顶部的黄色提示文字表示,此请求为了提高性能,而做了编码或者压缩(例如 GZIP),需要转换后才能在TextView里正常浏览。点击该区域或者下面的Chunked Transfer-Encoding 按钮,都能执行转换或者解压缩。如果该请求没编码/压缩是看不见此提示的。

HTTP Compression显示当前请求使用的编码方式:

None:无压缩

GZIP:GZIP压缩

DEFLATE:DEFLATE压缩

BZIP2:BZIP2压缩

Brotli:Brotli压缩

对未编码压缩的请求,可以选择不同的模式,看Response body里显示压缩后有多大。从而根据这个决定是否需要采用这样的压缩技术来提升网站的性能。

2、Headers:用分级视图显示响应的header。

3、TextView:使用文本显示响应的body。

4、SyntaxView:使用文本显示响应的 body,语法格式。

5、ImageView:如果请求是图片资源,显示响应的图片。左侧灰色区域会显示图片的大小、宽高、文件格式等信息,在下方还可以选择缩放模式:自动缩放、缩放以适应显示区域大小、无缩放。JPG 格式使用 ImageView 就可以看到图片。

6、HexView:用十六进制数据显示响应。

7、WebView:响应在Web浏览器中的预览效果。

8、Auth:显示响应header中的Proxy-Authorization和Authorization信息。

9、Caching:显示此请求的缓存信息。

10、Cookies:显示Cookie信息。

11、Raw:将整个响应显示为纯文本。

12、JSON:显示Json格式。

13、XML:如果响应的body是XML格式,就是用分级的XML树来显示它。

7.3AutoResponder

自动回复器,用于将HTTP请求重定向为指定的返回类型。

此功能启用后,可以将某一请求的响应结果替换成指定的资源,可以是本地文件,也可以是 Fiddler内置的各种HTTP响应。主要用于临时拦截某一请求的响应,而无需修改服务器上的环境和代码,保证在最真实的环境中进行调试,也无需在BUG查找的时候就寻求相关部门的配合。

启用该功能,请将Enable rules打勾。

Unmatched requests passthrough表示允许未匹配到的请求正常响应。打勾才能让其他的请求继续;否则其他未匹配到的请求都会以404状态返回。

Enable Latency表示启动延迟,勾选后选中规则,右键Set Latency,输入延迟响应的毫秒数,保存后,执行规则会先等待所设置的延迟时间。

页签中间是一个列表,显示当前创建的匹配规则,左侧是匹配的条件,右侧是响应的结果。即:如果请求的地址包含左侧的字符串,那么就用右边设定的资源来替换来自服务器的响应。选中某条规则右键用 + 和 - 两个按键可以调整当前选择规则在列表中的位置。

页签底部是一个规则编辑器,可以进行编辑当前用户选择的匹配规则、保存编辑、删除此匹配规则等操作。

一、匹配的条件,可以自行输入字符串,也可以选择Fiddler内置的三个正则。Fiddler支持几种匹配模式:

1、String Literals:字符匹配

这种模式将匹配指定的字符串,不存在大小写敏感。例如:

*

通配符,匹配任何地址,如:http://www.example.com/Path1/query=example

EXAMPLE

匹配 http://www.example.com/Path1/query=example

path1/

匹配 http://www.example.com/Path1/query=example

query

匹配 http://www.example.com/Path1/q=Query

2、Exact Match:精确匹配

EXACT: 开头,将严格匹配字符串,包括大小写。例如:

EXACT:http://www.example.com/path

匹配 http://www.example.com/path

不匹配 http://www.example.com/Path(大小写不符)

不匹配 http://www.example.com/path/q=Query(有多余字符串)

3、Regular Expressions:正则表达式

regex: 开头,使用正则表达式来匹配session的URL。例如:

regex:.*

通配符,匹配任何地址,如 http://www.example.com/Path1/query=example

regex:.*\.jpg 匹配包含.JPG的URL

匹配 http://www.example.com/Path1/query=foo.jpg&bar

匹配 http://www.example.com/Path1/query=example.jpg

regex:.*\.jpg$ 匹配.jpg结束的URL

不匹配 http://www.example.com/Path1/query=foo.jpg&bar(不是.jpg结尾)

匹配 http://www.example.com/Path1/query=example.jpg

regex:.*\.(jpg|gif|bmp)$ 匹配.jpg或.gif或.bmp结束的URL

不匹配 http://www.example.com/Path1/query=foo.bmp&bar(不是.bmp结尾)

匹配 http://www.example.com/Path1/query=example.gif

不匹配 http://www.example.com/Path1/query=example.Gif (是.gif结尾,但大小写不匹配)

匹配 http://www.example.com/Path1/query=example.bmp

regex:(?insx).*\.(jpg|gif|bmp)$ 匹配.jpg或.gif或.bmp结束的URL,忽略大小写。

不匹配 http://www.example.com/Path1/query=foo.bmp&bar(不是.bmp 结尾)

匹配 http://www.example.com/Path1/query=example.gif

匹配 http://www.example.com/Path1/query=example.Gif

匹配 http://www.example.com/Path1/query=example.bmp

最后一个正则中的?insx是正则表达式的语法,其中各字母的含义如下:

I:指定不区分大小写的匹配。

m:指定多行模式。更改^和$的含义,以使它们分别与任何行的开头和结尾匹配,而不只是与整个字符串的开头和结尾匹配。

n:指定唯一有效的捕获是显式命名或编号的(?…)形式的组。这允许圆括号充当非捕获组,从而避免了由(?:…)导致的语法上的笨拙。

s:指定单行模式。更改句点字符(.)的含义,以使它与每个字符(而不是除\n之外的所有字符)匹配。

x:指定从模式中排除非转义空白并启用数字符号(#)后面的注释。请注意,空白永远不会从字符类中消除。

二、响应的结果,Fiddler内置的HTTP 200/204/302/303/304/307/401/403/404/407/502等各种响应范例、*bpu和*bpafter、本地文件(Find a file...)等。

Save按钮是保存对此匹配规则的修改。

新增匹配规则具体操作:

1、点击Add Rule,进行添加规则。

2、在RuleEditor添加请求与返回的地址,之后点击Save进行保存。

3、之后选中Enable rules进行启用规则。

4、打开浏览器访问www.baidu.com,请求地址重定向为www.163.com页面信息。

7.4Composer

Composer允许自定义请求发送到服务器,可以手动创建一个新的请求,也可以在会话表中,拖拽一个现有的请求。

Parsed模式下你只需要提供简单的URL地址即可(也可以在Request Body定制一些属性,如模拟浏览器User-Agent等)。

点击Execute按钮执行请求,左边的请求列表会多出一项,双击它,可在Inspectors查看请求与返回的信息。

也可以粘贴一次请求的Raw http headers,达到模拟请求的目的。

7.5Fiddler Orchestra Beta

一个新的web远程调试器,分为控制器和客户端,控制器从中获取数据并控制任意数量的客户端,客户端报告数据并接收来自任意数量的控制器的命令。只有控制器保持端口打开并接收来自客户端的传入连接。所有客户端和控制器通信都是加密的。

1、设置控制器

这是控制器配置的起点。启动一个控制器只需要一个端口和一个私钥。端口必须为外部连接开放,以便客户端能够连接。私钥用于加密与客户端的通信。客户机必须具有相同的私钥集,以便能够连接到该控制器。只有当控制器停止时,才能重新生成私钥。

2、客户端安装(在Windows、Mac、Linux等)

下载安装.NET Core SDK v2.0.0

https://github.com/dotnet/core/blob/master/release-notes/download-archives/2.0.0-download.md

下载后,默认安装即可。

打开Fiddler,点击Fiddler Orchestra Beta

点击下载

下载后,对zip文件进行解压

在这个目录中打开命令提示符/终端

输入dotnet FiddlerOrchestra.Client.NetCore.dll

打开链接http://localhost:8800/,客户端开启。

3、控制器与客户端进行相连

控制器设置端口号、密钥后,点击Start开始。

客户端输入控制器IP地址、端口号、密钥后,点击Connect进行连接。

7.6FiddlerScript

用于通过脚本控制HTTP,使用的是JScript语言。

包含了一个CustomRules.js脚本文件可以自动修改Http Request和Response。位于: C:\Documents and Settings\[your user]\My Documents\Fiddler2\Scripts\CustomRules.js下,或者可以在Fiddler中打开CustomRules.js文件(启动Fiddler,点击菜单Rules->Customize Rules)。

7.7Log

查看抓取请求的日志信息

7.8Filters

筛选,在好多请求中只想关注所需要的请求,就可以用到此功能过滤指定的内容。

Hosts:Hosts 过滤规则

Client Process:客户端进程过滤规则

Show only traffic from-你可以指定只捕获哪个Windows进程中的请求,右侧会列出当前所有的Windows进程。

Show only Internet Explorer traffic-只显示IE发出的请求。

Hide traffic from Service Host-隐藏服务主机发出的请求。

Request Headers:请求header过滤规则

Show only if URL contains-支持基于URL显示某些请求;可以使用前缀EXACT来限定大小写敏感。

Hide if URL contains-和上面的是相反的含义,也就是隐藏的意思。

Flag requests with headers-支持指定某个http请求头名称,如果在请求列表中存在该请求头,会加粗显示该session。

Delete request headers-支持指定某个HTTP请求头名称,如果包含该请求头,会删除该请求头。

Set request header-支持创建一个指定了名称和取值的HTTP请求头,或将HTTP请求头更新为指定取值。

Breakpoints:断点设置规则

Break request on POST-给所有POST请求设置断点。

Break request on GET with query string-给所有带参数的GET请求设置断点。

Break on XMLHttpRequest-给所有XML请求设置断点。

Break response on Content-Type-给特定的Content-Type设定断点。

Response Status Code:响应HTTP状态过滤规则

Hide success(2xx)-隐藏响应成功的session(2xx)。

Hide non-2xx-会隐藏状态码不在200到299之间的响应。

Hide Authentication demands(401,407)-隐藏未经授权被拒绝的session(401,407)。

Hide redirects(300,301,302,303,307)-隐藏重定向的session(300,301,302,303,307)。

Hide Not Modified(304)-隐藏无变更的session(304)。

Response Type and Size:响应类型和大小过滤规则

设定响应类型过滤规则:

Show all Content-Types-显示所有响应类型。

Show only IMAGE/*-只显示图片。

Show only HTML-只显示HTML。

Show only TEXT/CSS-只显示TEXT/CSS。

Show only SCRIPTS-只显示脚本。

Show only XML-只显示XML。

Show only JSON-只显示JSON。

Hide IMAGE/*-隐藏所有图片。

Hide smaller than ? KB-隐藏小于指定大小的session。

Hide larger than ? KB-隐藏大于指定大小的session。

Time HeatMap-复选框会基于服务器返回给定响应所需要的时间为每session设置背景颜色。

Block script files-阻止脚本文件,显示为404。

Block image files-阻止图片文件。

Block SWF files-阻止SWF文件。

Block CSS files-阻止CSS文件。

Response Headers:响应header过滤规则

Flag responses that set cookies-标记会设置cookie的响应。

Flag responses with headers-标记带有特定header的响应。

Delete response headers-删除响应header。

Set response header-设置响应的header。

筛选指定URL操作:

1、勾选Use Filters,如我只想筛选baidu、163的请求地址,选择Show only the following Hosts,输入www.baidu.com;www.163.com(有多个的时候用分号隔开)。

2、浏览器访问多个请求地址(包含baidu、163),此时左侧的请求列表只抓取baidu、163的请求地址。

7.9Timeline

性能测试工具,同chrome浏览器开发者工具的Network项效果相似。

显示在请求列表面板中选择的session(一个或多个)请求到响应的时间表。横向是时间轴,以秒为单位;纵向是选择的session列表。

鼠标移到Timeline页签的某一session上,在Timeline页签底部会显示四个数据:

Session编号和URL;

Session的响应类型;

发送的字节数;

接收的字节数。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-12-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AllTests软件测试 微信公众号,前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第1章 监听类型
  • 第2章 命令行
  • 2.2>size或<size< span=""></size<>
  • 2.3=status
  • 2.4=method
  • 2.5@host
  • 2.6bold
  • 2.7bpafter
  • 2.8bps
  • 2.9bpv或bpm
  • 2.10bpu
  • 2.11cls或clear
  • 2.12dump
  • 2.13g或go
  • 2.14help
  • 2.15hide
  • 2.16urlreplace
  • 2.17start
  • 2.18stop
  • 2.19show
  • 2.20select MIME
  • 2.21select HeaderOrFlag PartialValue
  • 2.22allbut或keeponly
  • 2.23quit
  • 2.24!dns hostname或者!nslookup hostname
  • 2.25!listen PORT [CERTHOSTNAME]
  • 第3章 断点
  • 第4章 行数
  • 第5章 请求地址
  • 第6章 请求列表
  • 第7章 请求与返回相关信息
  • 7.1Statistics
  • 7.2Inspectors
  • 7.3AutoResponder
  • 7.4Composer
  • 7.5Fiddler Orchestra Beta
  • 7.6FiddlerScript
  • 7.7Log
  • 7.8Filters
  • 7.9Timeline
相关产品与服务
云开发 CLI 工具
云开发 CLI 工具(Cloudbase CLI Devtools,CCLID)是云开发官方指定的 CLI 工具,可以帮助开发者快速构建 Serverless 应用。CLI 工具提供能力包括文件储存的管理、云函数的部署、模板项目的创建、HTTP Service、静态网站托管等,您可以专注于编码,无需在平台中切换各类配置。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档