首页 > 其他分享 >测试工具Fiddler(三)—— 常见功能介绍

测试工具Fiddler(三)—— 常见功能介绍

时间:2024-09-11 15:26:43浏览次数:9  
标签:返回 Fiddler 匹配 请求 常见 Request 测试工具 example

Fiddler的功能面板

1、statistics:请求的性能指标;全世界范围的性能测试;

RTP:一个请求的从发送出去到返回的时间;

Show chart可以看出图表的示例;

2、inspectors:对请求解包:

  • header:请求头信息。UA,cookie,发送请求来源。
  • textView:可以看到返回的数据;
  • imageview:可以看到返回的图片(如果有图片返回的话)
  • webforms:看到请求传递的信息;
  • cookies:请求携带的cookie;
  • response header:响应报文的头文件

3、autoresponder: 文件代理:可以使用fiddler来自定义请求返回的文件。

当我们线上的出现bug的时候,可以使用线上返回 的文件在本地做一个修改,看看bug是否解除。

4、composer:前后端接口联调:可以将条目拖到composer然后进行模拟执行;伪造请求。不写js实现跟服务器交互。类似postman。

5、log : 使用fiddler的日志;

6、filters:过滤功能,可以很好帮助只显示我们关心的请求或者隐藏掉我们不关心的请求。

7、timeline: 网站性能分析,一个网站的请求多个网站请求进行,选中查看timeline查看请求详情。

一、Statistics数据统计面板,性能分析

重点:主要关注RTT,体现一个请求从发送到返回响应的时间

  1. 反映一个请求的性能指标,其中主要需要关注RTT
  2. 会展示全世界范围的请求平均数据
  3. show chart按钮,从饼状图中分别出哪些资源的请求耗时最多,从而对页面的访问进行访问速度优化

二、Inspectors查看请求与响应

Headers:查看Header

WebForms:用表格的形式查看body的值和请求参数的值

TextView/WebView:无格式化查看数据

Cookies:查看header中cookie的值

Raw:查看完整的消息结构

JSON以JSON格式查看数据(类似Charles默认显示响应数据的格式)

三、Filters过滤器

1、User Filters启用

2、Action

Action:

  • Run Filterset now运行过滤器
  • Load Filterset导入过滤规则
  • Save Filterset保存过滤器到本地

如下截图:

过滤监控会话,筛选和标记会话,或进行一些轻量级的修改;fiddler默认会检查http头中设置的host,标记或隐藏部分会话,选择隐藏的时候,fiddler仍然会代理通信的主机,只是将对应会话隐藏在监控面板

(文本框内输入需要标记或过滤的域名,多个域名使用”;”分号分割)

3、过滤器实际应用

3.1 过滤器实际应用一:只根据域名进行过滤
3.2 过滤器实际应用二:根据域名进行过滤,并过滤掉图片类型的请求

四、AutoResponder请求重定向

目的:允许从本地返回文件,代替服务器响应,而不用将文件发布到服务器【可用正式环境验证本地文件】。

关于Fiddler的AutoResponder重定向功能,主要是时进行会话的拦截,然后替换原始资源的功能。

1、什么是请求重定向?

所谓请求无非就是需要调用到的一些资源(包括JS、CSS和图片等),所谓重定向就是将页面原本需要调用的资源指向其他资源(你能够控制的资源或者可以引用到的资源)。

2、为什么要用这个功能?

  • AutoResponder类似于Charles的MapLocal功能,但是更强大,因为可以用正则去匹配;
  • 平时我们可能需要观察某个请求返回特定的响应数据,但是该请求可能每次都会带有唯一的请求参数(如:时间戳),那就可以通过AutoResponder的正则去匹配该请求,无需url里关心唯一的请求参数,而且也可以根据Header的属性去匹配url;
  • 甚至Fiddler还提供了多种response,不一定要自定义一个response。

接下来,就是页面介绍:

  • 红色圈:执行匹配规则,就是用来启动AutoResponder
  • 绿色圈:不匹配请求失败的url
  • 蓝色圈:添加匹配规则
  • 橘色圈:因为正则较为复杂,可以用Test去测试自己写的正则能否匹配上对应url

3、使用方法

  1. 需要勾选enable rules、unmatched requests passthrough选项
  2. 将左侧监控面板中截获到的请求,拖到Autoresponder面板中,选中该请求-右键-Edit response-textview,可修改服务端返回的内容(建议格式化之后再做修改,返回的内容结构会更清晰),点击【save】按钮,并勾选该请求前方的复选框——客户端重新发起该请求的时候,就会返回修改的内容。
  3. http://www.bejson.com/ json校验格式化工具

下方规则编辑框:默认精准匹配,完全相同的请求地址才会被拦截,该编辑框支持正则表达式进行模糊匹配,如regex:(?insx).*\.(css|js|PHP)$ 表示匹配所有以css,js,php结尾的请求url

下方规则下拉框:可选择服务器返回不同的code值或返回一个本地文件;Fiddler支持的拦截重定向的方式:

4、AutoResponder具体匹配规则写法(重中之重)

注意:如果Test URL输入框中显示绿色代表匹配成功,显示红色则匹配失败

4.1 字符串匹配(相当于模糊匹配)

匹配规则:path1/

http://www.example.com/**Path1/**query=example

http://www.example.com/returnUrl=**Path1/**OtherPlace

4.2 NOT匹配

匹配规则:NOT:path1/

http://www.example.com/Path2/query=example

4.3 EXACT精确匹配(完全匹配)

匹配规则:EXACT:http://www.example.com/path

http://www.example.com/path

http://www.example.com/Path

http://www.example.com/path/query=""

4.4 regex正则表达式匹配

.+ 一个或多个

.* 零个或多个

(?insx)不区分大小写

\ 转义

匹配规则:regex:(?inx)^https://.+\.gif$

简单理解:https开头,.gif结尾的url

5、AutoResponder实际运用

5.1 场景设计:返回404给客户端(Fiddler有自带的404响应可选择)

返回不同状态码可用于校验客户端是否正确处理错误码的展示效果

5.2 场景设计:返回200给客户端(Fiddler有自带的200响应可选择)
5.3 场景设计:返回自定义response
5.4 场景设计:返回原始响应文件修改之后的本地响应(类似Charles的MapLocal)

首先,选中对应的请求》saveresponse》response body》本地修改响应

五、Composer构造器

Fiddler Composer的功能就是用来创建HTTP Request 然后发送。你可以自定义一个Request, 也可以手写一个Request,你甚至可以在Web会话列表中拖拽一个已有的Request,来创建一个新的HTTP Request。

简单来说,Composer可以用来接口测试,支持前后端接口连调,支持多种类型的请求,如GET、POST。其中,POST请求的参数写在request body中、一般协议选择HTTP1.1。

Composer使用操作如下:

  1. 将左侧监控面板中截获到的请求,拖到composer面板中
  2. 修改parsed框Request Body(post请求需要修改,get请求不需要修改)中的值
  3. 点击右上角【Execute】按钮,即可按照修改后的请求头和参数值重新发起一次请求,重新发起的请求在左侧监控面板中可查看,修改后的请求内容在右侧history中有记录

1、Fiddler Composer的优势

  • 能从"Web会话列表"中,拖拽一个先前捕获到的Request,可以进行篡改数据;
  • 发送Request后,可以设置断点,继续修改Request;
  • 支持在Request中上传文件;
  • 支持重复发送多次Request。

2、Composer的实操

六、timeline网站性能分析

选中多个请求,进行网站性能分析

  1. Y轴:发送的请求列表
  2. 进度条为多线条型,则为缓冲模式;进度条为平滑的柱状,则为流模式
  3. 绿色圆圈:连接被重用;红色圆圈:新创建的连接
  4. 顶部圆圈:客户端连接到fiddler,下部圆圈:fiddler连接到目标服务器
  5. 灰色箭头图标/红色!图标/绿色闪电图标:服务器返回一个错误代码(3XX,4XX,5XX)
  6. 结尾处的红色X:意味着服务器发送了一个连接,连接被关闭或为private类型
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。

标签:返回,Fiddler,匹配,请求,常见,Request,测试工具,example
From: https://www.cnblogs.com/gaoyanbing/p/18408297

相关文章

  • Salesforce常见的100+个业内术语!(系列四)
    不知不觉Salesforce行业术语系列已经进行到系列四啦!本篇文章继续为大家带来Service领域和Marketing领域的术语,希望能对各位学习者有所帮助。Service领域的术语CTI全称:ComputerTelephonyIntegrationTelephony可以直接集成到Salesforce。对于依赖电话服务的部门来说,这是一个......
  • 安全测试工具(1)- Burp Suite Pro的安装教程
    啥是BurpSuite用于攻击web应用程序的集成平台程序员必备技能,不仅可以拿来做渗透测试、漏洞挖掘还能帮助程序员调试程序Bug它包含了许多Burp工具,这些不同的burp工具通过协同工作,有效的分享信息,支持以某种工具中的信息为基础供另一种工具使用的方式发起攻击。这些工具设计了许......
  • 软件测试常见工具
    收集整理,测试相关工具、资源面试题等,欢迎补充完善功能测试测试工具XMind:思维导图工具,常用来梳理测试点,商业软件,支持免费试用,有功能限制XShell:Windows平台远程Linux服务器连接及操作工具,商业软件,支持免费试用,有功能限制项目/测试管理Jira:缺陷跟踪、客户服务、需求收......
  • rsync 学习笔记(二)常见问题集锦
     问题一@ERROR:chrootfailedrsyncerror:errorstartingclient-serverprotocol(code5)atmain.c(1522)[receiver=3.0.3]原因服务器端的目录不存在或无权限。创建目录并修正权限可解决问题。问题二@ERROR:authfailedonmoduleteersyncerror:errorstarting......
  • 【04】深度学习——训练的常见问题 | 过拟合欠拟合应对策略 | 过拟合欠拟合示例 | 正
    深度学习1.常见的分类问题1.1模型架构设计1.2万能近似定理1.3宽度or深度1.4过拟合问题1.5欠拟合问题1.6相互关系2.过拟合欠拟合应对策略2.1问题的本源2.2数据集大小的选择2.3数据增广2.4使用验证集2.5模型选择2.6K折交叉验证2.7提前终止3.过拟合欠拟合示例3.1导入库3.2......
  • Java数组篇[10]:数组的常见应用场景
    哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云;欢迎大家常来逛逛  今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。  我是一名后端开发爱好者,工作日常接触到最多的就是Jav......
  • 常见的默认端口
    HTTP开发服务器:端口8080,这是一个非常普遍的非标准端口,用于本地开发服务器。HTTPS开发服务器:端口8443,用于本地开发环境中的加密服务器。Websocket:端口8080或8081,有时用于本地开发中的Websocket服务。Node.js:端口3000,Node.js应用程序默认使用这个端口,但也常被其......
  • 搭建 WordPress 及常见问题与解决办法
    浪浪云活动链接:https://langlangy.cn/?i8afa52文章目录环境准备安装LAMP堆栈(Linux,Apache,MySQL,PHP)配置MySQL数据库安装WordPress配置WordPress常见问题及解决办法数据库连接错误白屏问题插件或主题冲突内存限制错误本文旨在介绍如何在服务器上搭......
  • tailwindcss学习:2 自定义类的使用和常见的tailwindcss前缀
    1.自定义类的定义在Tailwind CSS中,您可以通过 tailwind.config.js 文件定义自定义类。类似 border-custom-green 这种写法实际上是一个组合类,通常是由自定义类和内置类结合而成的。示例:自定义边框颜色假设您在 tailwind.config.js 中定义了一个自定义颜色://tailwi......
  • 洛谷题单指南-常见优化技巧-P1714 切蛋糕
    原题链接:https://www.luogu.com.cn/problem/P1714题意解读:求长度不超过m的最大子段和解题思路:1、暴力法设a[N]表示原数组,s[N]是a[N]的前缀和,对于每一个元素s[i],计算其与前m个元素之差,取差值最大值,用代码表示:for(inti=1;i<=n;i++){for(intj=i-1;j>=i-m......