对于我们测试bs架构产品的同事来说,经常会使用F12去查看数据的返回和发送,依此来初步定位是前端问题还是后端问题。但是对于一些异常场景或者瞬时场景,想要测试下前端或者后端时,就要修改数据库去测试,但是修改数据库有一定弊端,修改不完全(多个库表有冗余存储)会导致多处数据错乱,制造垃圾数据,或者直接没有操作权限;这个时候就需要mock手段来进行测试。
我们经常会使用到的就是一些抓包工具,fiddler、wireshark、Charles等
本次我主要介绍下fiddler如何mock前后端数据以达到测试的目的。Fiddler的安装配置不再赘述,自行百度
1、什么情况下需要mock返回数据及如何mock数据返回
对于一些瞬时状态,我们想要测试下业务操作限制或者前端适配展示,这个时候我们就需要用到mock接口返回数据了
Mock方法如下
A、先开启拦截接口返回
Bpa url(要拦截的接口url) + 回车,如下图
开启后再请求该接口,就会看到左侧有一个方框的已劫持接口数据的标识,不再截图展示,选中该接口后,右侧会有抛弃数据和放行选项(绿色按钮)
B、修改接口返回并放行
在步骤A中拦截了接口返回后,查看inspectors、textview并修改返回数据,然后点击绿色的放行按钮即可,此时就能在浏览器中看到我们想要修改的数据了,比如状态修改为删除中这样的极短时间的中间状态,就可以测试前端是否有做操作限制等
2、什么情况下需要mock请求数据及如何mock请求数据
对于一些前端操作做了限制,同时接口也做了限制,通过前端我无法下发接口,但是我想测试接口有没有做限制,这个时候我们就可以去mock请求数据了,比如我找一个符合条件的数据下发操作是拦截请求,修改完请求数据(如资源id)后再放行请求,这样一来我们就可以直接验证接口是否有校验了,当然如果有openapi也可以通过openapi或者直接接口工具请求接口也可以(但是后两者无法测试与前端的交互,如果要测试与前端的交互,还是mock请求数据最方便)。
A、先开启拦截接口请求
Bpu url(要拦截的接口url) + 回车,如下图
开启后再请求该接口,就会看到左侧有一个方框的已劫持接口数据的标识,不再截图展示,选中该接口后,直接在右侧修改请求数据再放行即可