Fiddler Everywhere篡改接口响应结果之AutoResponder功能详解

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

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

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

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

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

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

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

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

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

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

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

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

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

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的话 ,可以使用如下的规则去进行配置:

可以用类似下面的配置:

# 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中指定的参数去匹配

使用方法如下:

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

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

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

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

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

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

访问效果:

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

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去进行实现。如果对大家有帮助,可以分享给身边的朋友一起学习喔!

往期推荐

SonarQube环境搭建

特定场景下才能复现的bug案例分享之--前端排序字段的锅

Postman+Newman+Git+Jenkins实现接口自动化测试持续集成

Fiddler Everywhere v1.0.1版本基础功能介绍

一篇文章为你揭秘pytest的基本用法

App自动化测试之Appium环境搭建

Jenkins自动部署测试环境之jar包部署

python高级用法之命名元组namedtuple

Fiddler是一款常用的网络调试工具,它可以拦截和修改HTTP/HTTPS请求和响应数据。通过Fiddler,我们可以方便地进行接口测试和调试。 下面是使用Fiddler进行拦截篡改接口测试的步骤: 1. 下载和安装Fiddler:你可以从Fiddler官网(https://www.telerik.com/fiddler)下载并安装Fiddler。 2. 启动Fiddler:安装完成后,打开Fiddler应用程序。 3. 配置代理:在Fiddler界面的菜单栏中选择"Tools" -> "Options",在弹出的对话框中选择"Connections"选项卡。勾选"Allow remote computers to connect"和"Act as system proxy on startup"选项,并点击"OK"保存设置。 4. 设置HTTPS拦截:在Fiddler界面的菜单栏中选择"Tools" -> "Options",在弹出的对话框中选择"HTTPS"选项卡。勾选"Decrypt HTTPS traffic"选项,并点击"OK"保存设置。 5. 开始拦截:在Fiddler界面的工具栏中点击"Capture"按钮,开始拦截网络请求。 6. 配置浏览器代理:为了让Fiddler能够拦截浏览器的请求,需要将浏览器的代理设置为Fiddler的代理。具体设置方法可以参考Fiddler官方文档或者搜索相关教程。 7. 进行接口测试:打开浏览器,访问你要测试的接口Fiddler会拦截并显示请求和响应的详细信息。 8. 修改请求和响应:在Fiddler界面中,你可以对请求和响应进行修改。例如,你可以修改请求的参数、修改响应的数据等。 9. 查看结果:在Fiddler界面中,你可以查看修改后的请求和响应的结果。同时,你也可以保存拦截的数据,方便后续分析和调试。 总结一下,使用Fiddler进行拦截篡改接口测试的步骤包括:下载安装Fiddler、配置代理和HTTPS拦截、开始拦截、配置浏览器代理、进行接口测试、修改请求和响应、查看结果。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小博测试成长之路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值