Fiddler Everywhere之AutoResponder功能详解

简介: AutoResponder主要用来mock接口的数据,在web调试的时候非常方便,比如你想验证前端列表展示有没有取错字段,你就可以mock接口返回结果,然后刷新页面后看看列表的数据是否变化。

先了解一下Fiddler Everywhere的基本用法,然后再看一下它的AutoResponder功能。

AutoResponder主要用来mock接口的数据,在web调试的时候非常方便,比如你想验证前端列表展示有没有取错字段,你就可以mock接口返回结果,然后刷新页面后看看列表的数据是否变化。


AutoResponder 请求匹配规则的常见用法

1、直接匹配*,拦截篡改所有请求


微信图片_20220113195754.jpg


此方法会拦截所有请求,不推荐使用,电脑上所有请求都会被拦截进行响应结果的修改。

该用法不太稳定,比如你一直不停的访问同类型的结果访问,就有可能出现无法响应的情况。用腾讯课堂的不同的连接测试过,有时候会偶现无法获取响应结果的情况。


2、匹配某个字符串 (不区分大小写)


微信图片_20220113195841.png


访问以下3个地址,都会自动返回执行的结果:

http://www.eryajf.net/63.html

http://www.eryajf.net/77.html

http://www.eryajf.net/56.html


微信图片_20220113195845.png


3、使用EXACT关键字进行完全匹配

以EXACT开头表示完全匹配,用法如下:


微信图片_20220113195848.png


4、使用REGEX关键字进行正则匹配

.+ :匹配一个或多个字符

.* :匹配0个或多个字符

^ :匹配字符串开始位置

$ :匹配字符串结尾位置

regex:(?inx).+\.(gif|png|jpg)$ #匹配所有gif|png|jpg结尾的请求


5、使用NOT关键字

如 NOT:8081  则表示请求url中没有包含8081的请求多会被自动响应


6、通过body中特定内容拦截请求

假设现在有这么一个接口,url都是http://127.0.0.1:8080/server/doServer.do,具体的传参是在body里面去控制的 ,body里面有一个参数method,表示当前调用的是哪个接口,如果这个时候想根据body的内容去进行mock的话 ,可以使用如下的规则去进行配置:


微信图片_20220113195850.png


可以用类似下面的配置:

# URLWithBody:url地址 regex:^.*body中的参数值.*$
URLWithBody:http://127.0.0.1:8080/server/doServer.do regex:^.*method.*$
URLWithBody:regex:.*127.0.0.1:8080.* regex:^.*method.*$

这种场景适用于,url上面没法区分是哪个接口,需要通过body里面不通过的传参去模拟返回不同的数据的时候,可以使用这种匹配规则。url地址也支持用正则匹配。


7、通过Headers中指定的参数去匹配

使用方法如下:


微信图片_20220113195853.png


Fiddler软件中给出的样例是使用Header:Accept=html,即使用Header里面的Accept参数去校验,我测试过 ,在目前的1.0.2版本中使用Accept-Encoding、Accept-Language参数也可以匹配到 ,但是使用Header中的其他参数去匹配的话,目前是匹配不上的,因此这个用法要慎用,并不是支持header中的所有参数。


配置如下规则:Header:Accept-Language=zh-CN,zh;q=0.9,en;q=0.8


微信图片_20220113195855.png


配置好之后,再访问百度首页,出现的结果如下,页面显示的结果跟配置规则下的显示结果是一致的:


微信图片_20220113195858.png


AutoResponder 请求匹配规则的常见用法

1、直接返回某个指定的字符串(Return manually crafted response)


微信图片_20220113195902.png


2、使用某个指定的文件内容进行返回(Choose saved response file...)


微信图片_20220113195904.png


3、直接使用某个网页的地址替换接口返回结果


微信图片_20220113195907.png


访问效果:


微信图片_20220113195910.png


以上只介绍常用的用法,更多的规则匹配和详细的描述,请参考官网的介绍:

https://docs.telerik.com/fiddler-everywhere/user-guide/live-traffic/autoresponder



总结


    通过以上描述,相信大家对Fiddler Everywhere工具的Auto Response功能有了一定的了解,该功能主要用来mock服务的接口的数据,在做功能测试的过程中,,这个功能是非常实用的。下面为大家介绍一下我在实际工作中用到的几个简单的应用场景:


‍‍一、用于辅助测试,快速验证前端页面的一些逻辑处理是否符合预期

1、前端对某列数据做四舍五入的处理,一时之间找不到符合要求的数据的时候,就可以使用该功能,篡改接口响应结果给前端,从而验证是否有bug。

2、前端某列显示金额字段,当金额的数值超过某个值的时候,显示格式要进行转换,一时之间找符合要求的数据比较麻烦的时候,就可以使用工具的这个功能快速的辅助你进行测试。

3、前端更改了某个明细字段的长度,但是在测试环境可能汇总指标的值为0,导致你进不去明细页面,看不到效果,那么可以篡改响应结果,把汇总的值由0改成其他值,绕过前端的校验。


二、用于辅助验证后端的处理逻辑


1、登录后能点击哪些菜单或按钮,是通过后端接口返回的,没权限的时候,前端控制不可点击。那如果篡改后端数据,新加入一个没有权限的接口返回前端,然后在页面上再去操作的时候,查看后端是否对权限做了二次校验。

2、有时候为了测试方便,会将生产的部分数据导入sit环境进行测试,但是有的基础数据又没导入,可能会存在在页面查询不到生产的数据 ,因为查询条件中选不到生产的某个网点,或者说id不匹配,这个时候就可以把查询接口中的接口响应结果用生产的接口的数据替换一下进行返回。‍‍                                                                                                    






以上是小编为大家整理的Fiddler Everywhere工具的Auto Response功能的基本使用方法,并结合自己在项目中使用的场景进行了分享,这些用法同样可以用fiddler去进行实现。如果对大家有帮助,可以分享给身边的朋友一起学习喔!

相关文章
|
开发工具 数据安全/隐私保护 git
Git切换本地用户名,IDEA集成Git如何切换本地用户名
Git切换本地用户名,IDEA集成Git如何切换本地用户名
585 3
|
Web App开发 存储 缓存
如何精准清除特定类型或标签的缓存数据?
如何精准清除特定类型或标签的缓存数据?
1053 57
|
9月前
|
人工智能 监控 API
分布式智能崛起后,我们终于知道 AI调度官 负责什么了
2026年,AI从云端巨兽蜕变为亿级边缘智能体,“AI调度官”应运而生——不再写提示词,而是设计交互协议、调控算力资源、熔断群体风险、注入人类价值观。他们是分布式智能时代的“立法者”与“守夜人”,掌控人机共生新秩序。(239字)
424 6
|
XML 人工智能 Java
优化SpringBoot程序启动速度
本文介绍了三种优化SpringBoot启动速度的方法:1) 延迟初始化Bean,通过设置`spring.main.lazy-initialization`为true,将耗时操作延后执行;2) 创建扫描索引,利用`spring-context-indexer`生成@ComponentScan的索引文件,加速类扫描过程;3) 升级至最新版SpringBoot,享受官方性能优化成果。这些方法能显著提升程序编译与启动效率。
2280 0
|
IDE 物联网 开发工具
自学esb32烧录进军物联网和嵌入式
自学esb32烧录进军物联网和嵌入式
1161 18
|
虚拟化 iOS开发 MacOS
VMware ESXi 7.0U3s macOS Unlocker & OEM BIOS 2.7 集成网卡驱动和 NVMe 驱动 (集成驱动版)
VMware ESXi 7.0U3s macOS Unlocker & OEM BIOS 2.7 集成网卡驱动和 NVMe 驱动 (集成驱动版)
450 1
VMware ESXi 7.0U3s macOS Unlocker & OEM BIOS 2.7 集成网卡驱动和 NVMe 驱动 (集成驱动版)
|
存储 缓存 资源调度
研究一下「pnpm」这个神奇的包管理工具
研究一下「pnpm」这个神奇的包管理工具
1376 0
WK
|
开发者 Python
Python命名规范
Python命名规范为编写代码提供了一系列规则和约定,以增强代码的可读性、可维护性和一致性。其涵盖了项目、模块、包、类、异常、变量、函数及方法的命名方式,并强调了避免使用单字母命名、关键字和内置名称的重要性。遵循这些规范能够帮助开发者编写更清晰、统一且易懂的代码。
WK
2227 2
|
JavaScript 前端开发 网络协议
JS RPC详解
JS RPC详解
717 2

热门文章

最新文章