###文章内容有配套的 学习视频和笔记都放在了文章末尾###
1、Composer介绍
Fiddler的Composer
的功能就是用来创建HTTP Request
然后发送请求。 允许自定义请求发送到服务器,即可以手动创建一个新的请求,也可在会话表中拖拽一个现有的请求。
Fiddler创建Request有两种方式:
- 可以手写一个Request。
- 在Web sessions会话列表中拖拽一个已有的Request。
Composer
起到的功能和Inspectors
中的作用一样,都是篡改数据,不过Composer
可以篡改Cookie
中的数据。也就是说,Inspectors
篡改的是我们输入的数据,例如密码输入什么就是什么。而Composer
篡改的是经过处理后的,例如Cookie
中的数据,其实密码已经是加密了的。
说明:
Composer:译为创作者,就是用来设计、创建、发送一个请求。
Composer功能也可以说是简单的接口测试工具,发包工具,或者是Fiddler的重放功能。
2、Composer界面说明
Composer如下:
说明:
Parsed
:表示已经被解析的整个HTTP请求,包括请求行,请求头和请求体。(就是最直观的看到Request请求的展示)Raw
:这个就是真实原始的HTTP
请求,是没有解析过的展示。Scratchpad
:可以存储已经收集好的HTTP请求,可存储多个不同的请求。Optinos
:Request Optinos
请求选项。Inspect Session
:检查会话,当开启此功能并重放的时候,会自动跳入Inspectors
功能模块,进行检查HTTP请求和响应。Fix Content-Length header
:当使用POST请求进行重放的时候,如果没有Content-Length
的请求头,Fiddler会自动加上此请求头,如果有但是请求正文大小错误,则它会自动修正。默认勾选。Follow Redirects
会自动重定向301,302的请求。Automatically Authenticate
:自动进行身份认证,包括认证NTLM
,http 401
,http 407
。UI Options
:Tear off
:此功能是在原有的Fiddler功能选项里面,将Composer这个功能弹出一个浮动窗口,如果不需要直接关闭这个窗口就会恢复原样。You can "tear off" the Composer into a floating window.
Log Requests
:记录保存重放的HTTP请求。Request Body
:这里设置请求体的内容,一般用在POST请求。Upload file
:此功能是自己在本地构造好一个HTTP请求,然后上传到Fiddler中进行重放。Execute
:执行重放功能或者执行新编辑请求的按钮。
3、使用方法
(1)自定义Request请求
手动填写HTTP Request请求的几个元素,点击Execute
即可发送该请求。
- 请求的URL
- 请求方式
- 请求头信息
- 请求参数
如下图:
(2)Composer重复发送请求
第一步:先用Fiddler抓取到需要重复执行的请求。
第二步:选中该请求,把它拖拽的Composer面板中。
第三步:点击Execute
按钮,重复执行该请求。
如下图:
说明:这个方法可以模拟重复发很多请求的功能,在测试一些接口返回请求频繁的功能时会用到。
(3)Composer篡改请求数据
第一步:首先需要抓取到一个请求,另外将界面切到Composer界面。
第二步:把该请求拖拽到Composer界面中。
比如:我们准备篡改登录页面的数据请求,所以只需要定位到那条请求记录,然后用鼠标将该条请求记录的位置拖拽到Composer中接口。Composer会自动读取到该条请求的所有数据。
第三步:篡改数据。直接在Composer中的Request Body
或者是请求头信息中修改数据。
第四步:点击“Execute”按钮执行发送请求。
如下图:
执行完毕,可以和正常的浏览器请求一样在Inspectors中查看一些信息。
个人觉得还是比较有用的,一个是用来更改Cookie,另一个可以篡改请求数据。
4、Filters介绍
Filters:过滤器,帮助我们过滤请求。
如果需要过滤掉与测试项目无关的抓包请求,更加精准的展现抓到的请求,而不是杂乱的一堆,那功能强大的 Filters 过滤器能帮到你。
总结:Filters过滤器的作用,过滤出我们想要的请求,不需要的请求忽略掉。
5、Filters界面说明
Filters界面如下图:
说明:
Use Filters(使用过滤):这个勾选之后,过滤器才会生效。
Actions(指定行为):四个选项说明
Run Filterset now
:使用当前的过滤规则。load Filterset
:加载(以前保存的)过滤规则。Save Filterset
:保存当前的过滤规则(非常实用,如针对每个应用测试设置一套过滤规则)。Help
:会跳转到Fiddler帮助页面。
(1)Hosts:主机过滤
主机过滤下面有两个下拉框,第一个下拉框是过滤局域网,第二个下拉框是过滤广域网。(较常用)
局域网过滤:展示局域网内容
No Zone Filter
:默认选项,不设置区域过滤器。show only Intranet Hosts
:只显示内网的Hosts,即过滤掉外网的Hosts。此时,只显示URL请求目标服务器在内网的请求。show only internet Hosts
:与上相对应,只显示外网的Hosts。
广域网过滤:展示广域网内容
No Host Filter
:默认选项,不设置过滤主机IP条件。Hide the following Hosts
:隐藏输入到下面文本框中的Hosts。Show only the following Hosts
:仅显示输入到下面文本框中的Hosts。Flag the following Hosts
:标识下边输入的主机名的会话(加粗)。
说明:
只想显示 www.51ste.com
的请求,则选中Show only the following Hosts
,并在下面输入框中填入 www.51ste.com
即可。此时,哪怕是http://51ste.com
的请求,也会被过滤掉,显示不出来。
(2)Client Process:客户端进程过滤
是对客户端的进程进行过滤,通过配置只过滤/不过滤哪些进程的请求。(用的不多)
Show only traffic from
:你可以指定只显示哪个Windows进程中的请求,右侧会列出当前所有的 Windows 进程。Show only Internet Explorer traffic
:只显示IE发出的请求。Hide trafficfrom service host
:隐藏来自service host的请求。如果不勾选,会出现很多其他后台网络数据流。
(3)Request Headers :根据请求头信息进行过滤。
常用。
Show only if URL contains
:仅显示URL中包含指定字符串的请求,字符串可以是URL中的一部分,多个字符串用空格分开。(多个表示 “或”,即只要URL包含任一字符串,都会显示),也可以使用EXACT:前缀来限定大小写,或者使用REGEX:前缀正则表达式或完整的URL。Hide if URL contains
:仅隐藏URL中包含指定字符串的请求(字符串可以是URL中的一部分,多个用空格分开, 可以是正则或完整的URL,同上)。Flag requests with headers
:标记带有特定header的请求,如果在web session列表中存在该请求,会加粗显示。
例如,我想突出显示header信息中带有token字段的URL请求,即可以勾选上这项,并在后面输入:token。Delete request headers
: 删除请求中指定的Header字段。(在进行测试时非常有用,比如去掉URL中的token信息,判断服务器是否有做token校验)Set request Header
:在URL请求中添加头字段,与上一条对应。前面输入字段,后面输入值。
(4)Breakpionts:设置断点
很少用,毕竟可以通过bpu
、bpafter
以及改写规则js设置断点。
Break request on Post
:针对所有Post请求设置断点。Break request on GET with query string
:给所有带参数的 GET 请求设置断点。Break on XMLHttpRequest
:针对所有Ajax请求设置断点。Break response on Content-type
:针对响应报文中header字段中,Content-Type
属性匹配成功的请求设置断点。
(5)Response Status Code:响应状态码过滤
根据URL请求响应状态码进行过滤,用的不多。
Hide success(2xx)
:隐藏响应状态码为2xx的URL请求,如:响应状态码为200的URL请求将隐藏掉。Hide non-2xx
:隐藏响应状态码不是2xx的URL请求。Hide Authentication demands(401,407)
:隐藏认证(响应状态码为:401 407)的URL 请求。这些响应需要用户进一步确认证书,authentication demands
是认证需求的意思。Hide redirects(300,301,302,303,307)
:隐藏重定向(响应状态码为:300,301,302,303,07)的URL请求。Hide Not Modifield(304)
:隐藏不是缓存的状态码(304)的URL请求。 304是请求的资源从上次起没有发生变更返回的状态码。
(6)Response Type and Size :根据响应类型和报文大小进行过滤
用的较少。
- 下拉列表选择要显示的类型
Show all Content-Type
:显示所有类型Content-Type的请求,Content-Type即为响应结果header信息中Content-Type字段。Show only IMAGE/*
:仅显示响应类型为图片的请求。
即响应header中Content-Type=IMAGE/
的请求,*
为通配符。Show only HTML
:仅显示响应类型为HTML的请求。Show only TEXT/CSS
:仅显示响应类型为text/css
的请求。Show only SCRIPTS
:仅显示响应类型为Scripts的请求。Show only XML
:仅显示响应类型为XML的请求。Show only JSON
:仅显示响应类型为Json的请求。Hide IMAGE/*
:隐藏所有响应类型为图片的请求。
Hide smaller than
:隐藏小于指定大小响应结果的请求。
大小可以在 Inpsectors 中响应结果部分的 Transformer 中查看。Hide larger than
:隐藏大于指定大小响应结果的请求。Time HeatMap
:时间的热图。Block script files
:阻止返回正常JS文件。如果响应是脚本文件,那么响应 404。Block image files
:阻止返回正常图片文件。如果响应是图片文件,那么响应 404。Block SWF files
:阻止返回正常SWF文件。如果响应是SWF 文件,那么响应 404。swf(shock wave flash)
:是Macromedia(现已被ADOBE公司收购)公司的动画设计软件Flash的专用格式。Block CSS files
:阻止返回正常CSS文件。如果响应是 CSS 文件,那么响应 404。
提示:这个功能可以测试CSS、JS等加载失败的情况下页面的展示情况。
(7)Response Header:根据响应头信息进行过滤
根据URL请求响应header信息进行过滤处理,用的较少。
Flag responses that set cookies
:会话列表的响应中有cookies信息的加上标识(斜体)。Flag responses with headers
:会话列表里标记响应中带有特定header的请求(即加粗)。Delete response headers
:会话列表里删除响应信息中,有指定的Header字段的会话。Set response header
:在响应中添加header字段。
如添加Transfer-Encoding: chunked
,前面填写Transfer-Encoding
,后面填写chunked
。
重点:配套学习资料和视频教学
那么在这里我也精心准备了上述大纲的详细资料在下方链接如下