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去进行实现。如果对大家有帮助,可以分享给身边的朋友一起学习喔!
标签:body,Fiddler,AutoResponder,前端,接口,用法,Everywhere,使用,匹配 来源: https://blog.51cto.com/u_7739395/2736348