Fiddler之设置网速模拟弱网测试
在测试过程中,经常会要求测试弱网络情况时的一些特殊情况,这时候IOS还好说,在开发者选项中调整网络模式即可;
但Android就只能通过别的方式了,例如通过fiddler抓包工具来设置弱网模式,在fiddler可以设置自己想要的网速,或者不稳定的网速来模拟。
前提:
手机设置代理能正常在fiddler抓包。
1、模拟弱网环境
在fiddler中启用Rules → Performances → Simulate Modem Speeds :模拟调制解调器的速度
2、Fiddler弱网的原理
Rules—>Cutomize Rules打开CustomRules.js 文档
在文件中搜索关键字,m_SimulateModem
分析一下这几行代码:
- 首先来判断m_SimulateModem是否为true,也就是是否设置了弱网模式。
- 如果为弱网模式。则分析代码
- oSession[“request-trickle-delay”] = “300”; 注释的也很明白,Delay sends by 300ms per KB uploaded.上传1KB需要300ms,转化一下上传速度:1Kb/0.3s = 10/3(KB/s)
- 如果你想设置上传的速度为50KB/s,你则需要设置Delay 时间为 20ms
- 同样的方法,也可以限制上传的速度,调整oSession[“response-trickle-delay”]即可。
网络取值的算法就是 1000/下载速度 = 需要delay的时间(毫秒),比如50kb/s 需要delay20毫秒来接收数据。
解释的更清楚一些:
if (m_SimulateModem) {
// Delay sends by 300ms per KB uploaded. //每延迟300ms发送1kb的数据,也就是每1s发送10/3kb的数据
oSession["request-trickle-delay"] = "300";
// Delay receives by 150ms per KB downloaded.//每延迟150ms下行1kb的数据
oSession["response-trickle-delay"] = "150";
}
代码中:
request-trickle-delay代表的是网络请求的延迟时间;
response-trickle-delay代表的是网络响应的延迟时间;
单位都是毫秒。
设置完成之后,需要重新开启模拟调制解调器来启用新的设置。
这时候用app进行弱网络条件操作,选择第一个请求和最后一个请求,可以看到整个页面加载所消耗的时间。通过fiddler的记录能知道每个请求不同部分的请求时间。overall elapsed是整个session的时间。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!