前端开发联调过程中,我们往往需要处理比较多的请求异常。有一些只是网络异常导致的,当然这个就比较简单,我们直接在network上去选择设置离线或者模拟良好3G网络或着信号差的3G网络。
但是一旦这个设置了,我们所有的请求都会以设定的速度去获取资源。
需求:我们现在需要模拟一组请求中有某一个请求异常的情况。比如:我有一个按钮,当我点击这个按钮后,触发a,b,c,d三个请求(可乱序),如果a,b,c请求完成并返回预期的值后,我们再去触发d请求,否则我们给出报错信息或者做一些其他的操作
在这个情况下,我们需要怎么在谷歌浏览器上模拟某个请求失败的这个行为呢
今天我们不从代码上去讲怎么实现这个逻辑,因为这个确实比较简单,我们可以直接使用try,catch就可以了。
我以前的做法,比如我需要让接口c处理异常,那么我会在给c的接口的传参数故意写错一个类型,因为后台也会做这个校验,只要通过不了校验,那么久会返回异常
这个方法在可行性上是没有问题的,但是有两个小硬伤
第一是我们要“明知故犯”,然后“洗心革面”,虽说不会忘记取消,但是这种做法始终不高级!
第二个是在非本地联调的情况下,操作难度加大。
那么,我们可以打开F12的控制台,随便选择一个请求,右键block request URL
点击➕,并编辑需要被禁掉的url,如果你的请求上带有一个r=0.721631229163... 的一个随机数的话,这个随机数必须要去掉
我们再次请求的时候,就可以看到效果了
这里我们可以在请求的status上看到被调试工具被block住了,当我们需要关闭的时候,删除掉或者取消勾选enable request blocking就好了