测试必会+面试必问--fiddler参数详解

news2024/12/29 2:36:14

Fidder抓包是作为测试必须掌握的一项技能。

这篇详细介绍(保姆级)Fiddler在测试中常用的功能。

全文较长(6000字),建议先收藏,需要时再食用。

一、界面简介

先看一下完整的Fiddler界面布局

 

Fiddler界面主要包含四部分:菜单栏、工具栏、会话列表、会话详情

1.菜单栏

  • File:用于打开新的Fiddler会话、导入/导出session、保存会话等
  • Edit:用于复制/粘贴session、host、url、header;删除session;查找session(find sessions)等
  • Rules:根据规则对会话进行过滤,比如‘Hide Image Request’隐藏图像请求,也可以自定义规则
  • Tools:工具,可以在options中设置Fiddler端口号,设置获取https请求等,也可以清除缓存、cookie等。
  • View:用于设置是否显示菜单栏、界面布局等

2.工具栏

在菜单栏View中可以设置是否显示工具栏。

工具栏主要是一些常用的操作按钮。

通过stream可以切换两种模式

  • 缓存模式:Fiddler直到响应完成时才将数据返回给应用程序。在测试中可以用来控制响应、修改响应数据。
  • 流模式:Fiddler即时将响应数据返回给应用程序,更接近真实环境。例如测试性能时需要选择此模式。

3.会话列表面板

界面左侧的部分,主要包括

Result:http的响应状态

Protocol:协议类型

Host:请求地址的域名

Url:请求的服务器路径

Body:请求的大小,单位byte

Content-Type:请求响应的类型

Process:请求发出者及进程ID

Comments:可以给会话添加备注

4.会话详情面板

会话详情面板分为两部分

1.上方为request请求的详细信息,查看方式常用headers(头部信息)、webforms(表单格式)、cookies、raw(完整信息,最常用)、json(json格式)

2.下方为response响应信息,查看方式与上方的请求框类似。

需要注意的一点:当响应信息里出现乱码时,直接点击下图黄色条即可解码。

​现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:485187702【暗号:csdn11】

5.命令行

窗口左下角还有一个不起眼的黑色框,这块命令行模式,可以输入指令。比如输入cls进行清屏。

 二、Filters功能详解

Filters的功能是通过设置过滤规则,实现在会话中仅显示我们想要的请求。

过滤规则包含一下几种

过滤规则说明

1.Hosts(常用)

1)No Zone Filter:不对内网和外网进行过滤 show only Intranet Hosts: 内网 show only internet Hosts:外网

2)No Host Filter :不对主机名进行过滤 Hide the following Hosts:隐藏下边输入的主机名的会话 show only the following Hosts:标记以下主机的会话

例如:

 

  • 如果要过滤本机,127.0.0.1 和 localhost都需要写
  • 百度有很多二级域名,前边可以写*

2.Clients 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包含任一字符串,都会显示), 可以是正则或完整的URL)
  • Hide if URL contains
    仅隐藏URL中包含指定字符串的请求(字符串可以是URL中的一部分,多个用空格分开, 可以是正则或完整的URL)
  • Flag requests with headers
    标记带有特定header的请求(即加粗)。例如,我想突出显示header信息中带有token字段的URL请求,即可以勾选上这项,并在后面输入:token
  • Delete request headers
    删除请求中的Header字段。在进行测试时非常有用,比如去掉URL中的token信息,判断服务器是否有做token校验
  • Set request Header
    在URL请求中添加头字段,与上一条对应。前面输入字段,后面输入值

4.Breakpoints

  • 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

  • Hide success(2xx)
    隐藏响应状态码为2xx的URL请求,如响应状态码为200的URL请求将隐藏掉。
  • Hide non-2xx
    隐藏响应状态码不是2xx的URL请求。
  • Hide Authentication demands(401,407)
    隐藏认证(响应状态码为:401 407)的URL 请求。
  • Hide redirects(300, 301, 302, 303,307)
    隐藏重定向(响应状态码为:300 301 302 303 307)的URL请求。
  • Hide Not Modifield(304)
    隐藏不是缓存的状态码(304)的URL请求

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
    隐藏大于指定大小响应结果的请求。
  • Block script files
    阻止返回正常JS文件。
  • Block image files
    阻止返回正常图片文件。
  • Block SWF files
    阻止返回正常SWF文件。
  • Block CSS files
    阻止返回正常CSS文件。

7.Response 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。

三、Inspectors检查器功能详解

Inspectors 主要是查看请求报文、响应报文,是Fiddler最主要的功能。Inspectors 界面上半部分为请求报文下半部分为响应报文

1.请求报文

Request Headers 可以分层级分类显示请求头的信息,包含请求的Cache、Client、Cookies、Entity、Miscellaneous、Security、Transport等相关信息,但并不是所有请求都包含以上全部信息。

 

此外,Inspectors 根据请求的不同,可以选择多种格式化的形式展示请求报文的部分或全部信息,但是一个请求不可能有所有的展现形式。

TextView以文本格式展示

2.响应报文

结构与请求报文相似,以多种格式化的形式展示请求报文的部分或全部信息。

3.应用场景

  • 发送某个接口请求,返回的内容不是预期的结果时,抓包分析请求、响应报文
  • 点击某个按钮没反应时,抓包分析请求、响应报文
  • (测试常用)当没有接口文档时,可通过web端点击,抓包分析请求、响应报文,查看请求参数和响应内容
  • 接口测试时,当构造的请求返回总是报错时,可以通过对比请求报文与接口文档中的信息,查找问题。

四、AutoResponder功能详解

Fiddler 的 AutoResponder 可以实现自动重定向,主要是通过事先添加好的 Rule,进行规则匹配。只要匹配,就会拦截请求,然后篡改原始响应内容到本地或者指定响应,从而实现自动重定向。

1.设置规则

1.1手动设置规则

比如我们把百度首页的响应结果改为一个测试的html文件

1.先写一个test.html

 

2.在AutoResponder中点击‘Add Rule’,输入匹配的内容(https://www.baidu.com)和修改后的响应内容(test.html)

步骤如下:

 找到我们刚写的test.html,点击save保存

3.在浏览器在打开百度,看看效果

 

1.2引用会话设置规则

这个很简单,就是从左侧列表把某个会话拖到右侧AutoResponder窗口中来,然后修改我们想要的响应结果,最后点击save保存即可

可以勾选后边的‘Match only once’,代表该规则只匹配一次。

2.匹配规则

AutoResponder 匹配规则有四种:字符串匹配、NOT 匹配、EXACT 匹配、REGEX 匹配。

2.1字符串匹配

直接输入字符串,进行模糊匹配,匹配包含该字符串的请求。

 打开百度查看

2.2NOT 匹配

对应字符串匹配,发现不匹配包含该字符串的请求

2.3EXACT 匹配

精准匹配,常用。

比如,我们精准匹配百度首页,如果匹配,请求前自动断点。

 然后我们在浏览器访问百度,然后回来查看fiddler,断点成功

2.4REGEX 匹配

使用正则表达式匹配,测试中不常用,不作详解。

3.测试中的应用场景

  • 1.在测试接口时,可以自定义返回内容,通过自定义的返回内容,进而测试程序接收到不同返回后,不同的处理逻辑
  • 2.可以利用此功能在线上环境提前验证正在开发的功能。比如前端要换一个图片,我们可以直接在线上环境把之前的请求指向本地图片,进行页面布局、适配等验证。

举个例子:百度要换主页的logo了,我们可以自己改一下对应图片,先测起来。

 然后再打开百度看一下

ok,改成功了,可以先测起来了,很明显,我这图片横向被压缩了,提bug。

五、Composer功能详解

Composer的功能是用来创建并发送http request请求的。

方式有两种,一种是Parsed方式,一种是Raw方式。

两种方式实现的功能是一样的,只是Parsed方式是以图形界面的方式构造请求,Raw方式是以HTTP请

求报文的格式构造请求的。

构建请求的方式也有两种:

1.手写

2.直接从左侧的会话列表拉过来,然后进行修改

1.Parsed方式

Parsed方式的功能和postman类似,但是没有postman好用,界面如下

 

请求构建好了,点击Execute发送即可。

2.Raw方式

 

请求构建好了,点击Execute发送即可。

3.应用场景

3.1常规接口测试

使用Composer发送request请求,其实就是当做postman来用,优点就是可以直接从左侧会话列表拉请求过来。

3.2篡改请求数据

抓取到请求后,拖拽到Composer窗口,根据测试需要修改请求报文,进行异常数据测试。

也可以用于调试接口。

六、断点功能详解

断点功能是Fiddler一个强大且常用的功能。

设置断点有两种方式:

1.通过菜单栏断点(全局断点)

2.命令行断点(局部断点)

1.通过菜单栏断点

通过菜单栏设定的断点会对之后的所有HTTP请求有效,即全局断点。

路径:Rules--Automatic Breakpoints

  • Before Requests
    Fiddler收到请求,发送给服务器之前,对请求进行拦截,这时候可以修改请求的数据。
  • After Responses
    Fiddler收到服务器响应,返回给客户端之前,对响应数据进行拦截,这时候可以修改响应的数据。

我们选择Before Requests后打开百度试一下:

 

显示如图界面就代表断点成功了,这时候可以修改请求,然后按绿色位置‘run to completion’继续。

2.通过命令行断点

可以通过在命令行输入指令,实现对特定类型的请求进行断点,即局部断点。

常用的断点命令:

需求命令

命令行输入对应请求后,按回车生效。

3.应用场景

测试中,设置断点可篡改请求和返回的数据包。根据测试的不同场景,有时需要在测试过程中更改请求、或者更改响应内容,从而达到最终的测试目标。


ok,这些就是测试在Fiddler中常用到的功能。我也是在学习阶段,目前只接触到这些模块,之后用到其他模块再写,争取把Fidder摸透。

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 希望能帮助到你!【100%无套路免费领取】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1267771.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微信发红包,有哪些测试点

1、功能 1.在红包钱数,和红包个数的输入框中只能输入数字 2.红包里最多和最少可以输入的钱数 200 0.01 3.拼手气红包最多可以发多少个红包 100 3.1超过最大拼手气红包的个数是否有提醒 4.当红包钱数超过最大范围是不是有对应的提示 5.当发送的红包个数超过…

Kubernetes技术与架构-安全性

本文主要从不同层面与多个维度描述Kubernetes技术与架构的安全性。 云原生的安全性 从系统分层架构的角度分析,自底向上,云原生的安全性主要包括云、集群、容器以及代码四个层面,简称云原生4C安全,其架构图如下所示:…

express+multer实现简单的文件上传功能

expressmulter实现简单的文件上传功能 1.安装multer和uuid依赖 cnpm install -S uuid multer2.添加multer的配置文件 在config文件夹下添加uploa.js文件,内容如下: // 引入multer const multer require(multer) // uuid : 用于生成不重复的由英文组…

第20 章 多线程

20.1线程简介. 20.2创建线程 2.1继承Thread类 Thread 类是java.lang包中的一个类,从这个类中实例化的对象代表线程,程序员启动一个新线程需要建立Thread 实例。Thread类中常用的两个构造方法如下: public Thread():创建一个新的线程对象。 public Threa…

BTCPay Server:免费、安全、开源的比特币支付处理器 | 开源日报 No.90

MunGell/awesome-for-beginners Stars: 58.0k License: NOASSERTION 这个项目是一个收集开源项目的列表,旨在帮助初学者找到可以贡献代码的机会。该列表按编程语言分类,并列出了每个项目以及其标签 (如 “good-first-issue”、“beginner” 等)。主要功…

宇宙中可能存在的另外一种生命体-硅基生命

本文提到的所有图片有燧原曜图平台生成提供 概念 碳基:生命的组织架构由碳元素组成(地球的生命)硅基:生命的组织架构由硅元素组成 引言 费米悖论 中提到有存在外星文明的可能,但它们迄今为止还无法和我们接触三体人…

【Java】文件路径-绝对路径与相对路径

1、绝对路径与相对路径 先来看一下绝对路径和相对路径的定义: 绝对路径是指完整的描述文件位置的路径就是绝对路径。如Windows系统中的D:\Project\data\test.txt,MAC系统中的/Users/liuwenwen/Desktop/Project/test.txt 相对路径是指相对于当前文件位置…

nodejs最新电商jd m端h5st 4.2签名算法4.2版本逆向,jd API接口,jd商品数据采集

前言: jd m端使用最新的h5st 4.2签名算法,与h5st 4.1版本有很大的不同。在这儿分析一下,供大家参考。 一、目标地址(Base64解码) aHR0cHM6Ly9zby5tLmpkLmNvbS93YXJlL3NlYXJjaC5hY3Rpb24/a2V5d29yZD0lRTklOTklQTQlRTYlQjklQkYlRTYlOUMlQkEmc2…

云性能监控的关键组成部分

云性能监控是确保云服务稳定运行的不可或缺的一环。通过实时可见性、资源优化和快速故障排除,企业可以最大程度地利用云服务的优势,提高业务的可用性和效率。采用综合的监控策略和最佳实践,企业可以更好地应对日益复杂和变化的云环境&#xf…

最强Oracle 19c OCM考试错题解析

参加过Oracle 19c OCM考试的学员都知道,OCM考试结束后会告诉考生考试成绩是多少分,但并不会告诉考生哪道题做错了,就考试问题,姚远老师会总结一些文章出来,欢迎关注。 最近姚远老师在OCM的授课中发现了一道题目&#x…

1-2、计算机组成

语雀原文链接 文章目录 1、计算机组成1-1、主板1-2、接口卡1-3、存储器(内存) 2、存储器2-1、存储器的重要性2-2、物理存储器2-3、逻辑存储器2-4、内存地址空间的分段2-5、存储单元2-6、指令和数据 3、总线3-1、三类总线3-2、CPU读数据例子3-3、CPU写数…

SVG图片选择库组件封装及使用

需求 需求: 在项目中通常需要做菜单管理,想要让左侧菜单好看一点,一般都会选择添加图标,需要自定义选择喜欢的图标,得提供一个有选择项的图标库 延伸需求:在项目中通常可能有好几个图标选择库,可…

【星火大模型】api使用

讯飞星火官方首页 准备工作 注册讯飞星火账号申请开发者api试用 从一个demo开始 讯飞星火官方的程序员为我们提供了非常优秀的demo,基本涵盖了大多数常用语言。 demo下载链接 这里我选用Java带上下文调用示例 下载后可以看到这是一个idea项目,直接…

最佳实践-使用RKE快速部署高可用k8s集群

公众号「架构成长指南」,专注于生产实践、云原生、分布式系统、大数据技术分享。 概述 Rancher Kubernetes Engine(RKE)是一个用于部署、管理和运行Kubernetes集群的开源工具。旨在简化Kubernetes集群的部署和操作。 RKE具有以下特点和功能&…

Linux学习笔记09、Shell命令之历史命令和自动补全

上一篇:Linux学习笔记08、Shell命令之常用命令缩写及全称 目录 1、历史命令: 1.1、查看所有历史命令列表: 1.2、查看指定历史命令: 1.3、清除历史命令: 2、自动补全 2.1、当字符串唯一时: 2.2、当有多个…

一个00后女生在csdn创作1095的创作纪念日

大家好,我是你们熟悉的微枫奶糖 肥晨,今天收到私信,突然发现,我来到CSDN已经1095天了。让我来分享一下吧~ 机缘 不知不觉来csdn已经1095天了,祝贺我在CSDN的创作纪念日! 这是一个非常值得纪念的日子&…

初识PO模式并在Selenium中简单实践

初识PO模式 PO(PageObject)是一种设计模式。简单来说就是把一些繁琐的定位方法、元素操作方式等封装到类中,通过类与类之间的调用完成特定操作。 PO被认为是自动化测试项目开发实践的最佳设计模式之一。 在学习PO模式前,可以先…

HeteroTiC: 基于异构时间通道的鲁棒网络流水印

文章信息 论文题目:HeteroTiC: A robust network flow watermarking based on heterogeneous time channels 期刊(会议):Computer Networks 时间:2022 级别:CCF B 文章链接:https://doi.org/10…

堆在排序中的应用

堆排序 1、堆排序原理 堆排序是利用到了堆这种数据结构,我们首先回顾一下二叉堆的特性: 最大堆的堆顶是整个堆中的最大元素。最小堆的堆顶是整个堆中的最小元素。 以最大堆为例,如果删除一个最大堆的堆顶(并不是完全删除&…

YOLOv5改进之ShuffleNetV2

目录 一、原理 网络结构 二、代码 三、应用到YOLOv5 一、原理