Fiddler 如何做弱网测试
前言:限速原理
是以网络延迟的方式实现的,网络延迟时间*网速=传输字节数
实现方式
点击Rules – Customize Rules(快捷键Ctrl + R)打开Fiddler ScriptEditor,或者直接点开右侧主页签的FiddlerScript
方法1
# 在代码里找到onBeforeRequest,这里定义了在发送请求前做什么。加入如下代码可以实现延迟:
oSession["request-trickle-delay"]="3000"; //请求阶段延迟3秒
oSession["response-trickle-delay"]="3000"; //响应阶段延迟3秒
方法2
Ctrl + F 查找m_SimulateModem标志位,可以看到如下代码,修改配置后,勾选了Simulate Modem Speeds(Rules - Performance - Simulate Modem Speeds)时,request-trickle-delay与response-trickle-delay就会被设置,每次设置后都需要重新勾选
说明:request-trickle-delay中的值代表每KB的数据被上传时会被延时多少毫秒;response-trickle-delay则对应下载时每KB的数据会被延时多少毫秒。比如你要模拟上传速度100KBps的网络,那上传延迟就是1KB/100KBps=0.01s=10ms,就改成10。
默认设置下上传延时
1Mbps = 128 KB/s = 0.125MB/s
上传带宽 = 1KB/300ms = 1/128/0.3 Mbps ≈ 0.027Mbps
下载带宽 = 1KB/150ms = 1/128/0.15 Mbps ≈ 0.053Mbps
方法3 - (随机延时量设置)
# 使得网络带宽不是恒定为一个低速的值,而是会在一定范围内随机抖动,修改配置后,勾选了Simulate Modem Speeds,即生效:
# 添加位置,附图
static function randInt(min, max) {
return Math.round(Math.random()*(max-min)+min);
}
if (m_SimulateModem) {
// Delay sends by 300ms per KB uploaded.
oSession["request-trickle-delay"] = ""+randInt(1,50);
// Delay receives by 150ms per KB downloaded.
oSession["response-trickle-delay"] = ""+randInt(1,50);
}
拓展(Bit和Byte的区别)
拓展(带宽与流量的区别)
以上参考和转载博文:https://www.jianshu.com/p/b9e349b8f411 ; https://www.jianshu.com/p/492a1564d16d ; https://www.jianshu.com/p/f417d328e0df
如有侵权,联系删除