Fiddler 实用功能总结

Posted 酔清风

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Fiddler 实用功能总结相关的知识,希望对你有一定的参考价值。

文末给大家准备了资料(好几套面试题加学习资料等),需要自取!

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

抓取接口请求:

一、微信小程序测试

1.抓取 PC 端微信小程序接口日志

先清一下小程序缓存,点开手机端分享的链接进入小程序,查看 fiddler 请求(无需特殊设置)

 2.抓取手机端微信小程序接口日志

手机端基础设置请参照:转载 使用fiddler实现手机抓包 - 简书

1) 安卓端:微信 7.0 版本以上或系统 7.0 版本以上都抓不到了,要么开发在代码里设置,要么需要用其他工具折腾,比较麻烦,如果实在想整,请参照:转载听说安卓微信 7.0 不能抓 https? · TesterHome

2)ios 端,基础设置完成后,就可以抓到小程序的接口日志了

3.微信小程序手机端清缓存方法(体验版)

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

 


二、一般的 web 端和 app 端

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

三、框架比较特殊的 app 端

比如 Flutter,默认 Flutter 不会主动使用系统代理,需要单独设置,正是因为 HTTP 客户端没有使用我们设置的系统代理,他们自然也不会连接 Fiddler 创建的代理服务器,最终导致我们无法获取任何请求。
此时就需要祭出我神器了 V*软件 drony,drony 会在你的手机上创建一个 V,将手机上的所有流量都重定向到 drony 自身(不是流向 V* 服务器),这样 drony 就可以管理所有手机上的网络流量,甚至可以对手机上不同 APP 的流量进行单独配置
具体设置请参照:转载部分APP无法代理抓包的原因及解决方法 - 云+社区 - 腾讯云
这个工具有个问题,就是我用的 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 就会自动帮我们修改返回的结果

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

福利

 

以上是关于Fiddler 实用功能总结的主要内容,如果未能解决你的问题,请参考以下文章

Fiddler 抓包工具总结

我干起了翻译的勾当!总结缓存使用过程中的几种策略以及优缺点组合分析

Fiddler常用功能-总结

Fiddler常用功能总结

Fiddler

Fiddler操作总结