最近一段时间测了 App、web 端、微信小程序等,对比了几种抓日志的方式,觉得 fiddler 还是挺通用的,汇总一拨~~~

抓取接口请求:
一、微信小程序测试
1.抓取 PC 端微信小程序接口日志
先清一下小程序缓存,点开手机端分享的链接进入小程序,查看 fiddler 请求(无需特殊设置)

2.抓取手机端微信小程序接口日志
手机端基础设置请参照:转载 https://www.jianshu.com/p/724097741bdf
1) 安卓端:微信 7.0 版本以上或系统 7.0 版本以上都抓不到了,要么开发在代码里设置,要么需要用其他工具折腾,比较麻烦,如果实在想整,请参照:转载https://testerhome.com/articles/17746
2)ios 端,基础设置完成后,就可以抓到小程序的接口日志了

3.微信小程序手机端清缓存方法(体验版)
1)打开小程序右上方 “...”,打开调试,点击 wx.clearStorage(),清除缓存,删除保存的微信小程序,重新扫码进入(测试的时候开发提供一个二维码)




二、一般的 web 端和 app 端
没有什么可讲的,就是基础设置做好,如果抓不到就看下是不是 fiddler 本身的问题,一般重启或者卸载重装可以解决

三、框架比较特殊的 app 端
比如 Flutter,默认 Flutter 不会主动使用系统代理,需要单独设置,正是因为 HTTP 客户端没有使用我们设置的系统代理,他们自然也不会连接 Fiddler 创建的代理服务器,最终导致我们无法获取任何请求。
此时就需要祭出我神器了 V*软件 drony,drony 会在你的手机上创建一个 V,将手机上的所有流量都重定向到 drony 自身(不是流向 V* 服务器),这样 drony 就可以管理所有手机上的网络流量,甚至可以对手机上不同 APP 的流量进行单独配置
具体设置请参照:转载https://cloud.tencent.com/developer/article/1490033
这个工具有个问题,就是我用的 102 版本,不适配 8.0 的安卓系统,需要配置比较低的手机,如果需要在高配置的手机上操作,可以去下载高版本 drony 试一下

限速测试
1.Rules – Customize Rules(快捷键 Ctrl + R)打开 Fiddler ScriptEditor

2.Ctrl + F 查找 m_SimulateModem 标志位

3.找到 onBeforeRequest,修改上行上传速度/下行下载速度的 参数,如你要模拟上传速度 100KBps 的网络,那上传延迟就是 1KB/100KBps=0.01s=100ms,就改成 100

4.打开 fiddler,Rules –> Performances –> Simulate Modem Speeds 勾当选中此选项网速就会变很慢,这样就实现了弱网络效果

注意:每次编辑并保存配置文件后,Simulate Modem Speeds 选项会被取消,请重新勾选。

使用 AutoResponder 更改请求的返回结果
fiddler 本身提供了断点,可以修改请求参数和返回结果来达到某种测试需要,但由于超时时间很短,一般在几秒之内,而在这么短时间内往往还没有手动修改完,请求已经超时,导致无法模拟请求。
此时我们可以使用 AutoResponder 功能,它可以过滤到某个 http 请求,指定本地返回结果,用于取代服务器返回
1.首先将该两选项勾选;

2.将请求拖入该区域

3.本地创建 txt 文件,写一个返回结果,例如:{"status":402,"data":{"msg":"appID 不存在!"}}。
4.修改规则后 test 一下是否匹配测试的 url,如匹配则 testURL 中有地址,背景色为浅青色,save 一下。

5.好了,客户端操作发送此请求时,fiddler 就会自动帮我们修改返回的结果

以上如有错误的地方,欢迎小伙伴们沟通指正~~


↙↙↙阅读原文可查看相关链接,并与作者交流