fiddler妙用--弱网设置(模拟限速)
fiddler妙用--弱网设置(模拟限速)
- 目的
- 设置入口
- 查看当前设置限速
- fiddler限速原理
- fiddler自定义模拟2M宽带设置
- 设置网络环境随机参数
目的
测试过程中经常需要去模拟弱网环境下的产品加载显示情况,检查是否影响用户使用。而fiddler是一个非常好用弱网模拟工具,适合模拟弱网环境进行测试,问题复现,然后给到开发调优处理;
设置入口
打开fiddler,默认情况下Rules->Performance->Simulate Modem Speeds是未勾选状态,此时网络正常。当选中此选项后,网速就会变慢,打开网页就会加载很久,这样就实现了弱网效果。

查看当前设置限速
点击Rules – Customize Rules(快捷键Ctrl + R)打开Fiddler ScriptEditor,或者直接点开右侧主页签的FiddlerScript。
打开文件后按Ctrl + F 查找m_SimulateModem标志位,找到对应的代码块如下:
if (m_SimulateModem) {// Delay sends by 300ms per KB uploaded.oSession["request-trickle-delay"] = "300"; // Delay receives by 150ms per KB downloaded.oSession["response-trickle-delay"] = "150"; }
代码块说明:
request-trickle-delay中的值代表每KB的数据被上传时会被延时多少毫秒;
response-trickle-delay则对应下载时每KB的数据会被延时多少毫秒。
fiddler的默认设置是:
[“request-trickle-delay”] = “300”;[“response-trickle-delay”] = “150”;
fiddler限速原理
Fiddler限速是以网络延迟的方式实现的,网络延迟时间网速=传输字节数
比如你要模拟上传速度100KBps的网络,那上传延迟就是1KB/100KBps=0.01s=10ms,就改成10
我们来计算下fiddler的默认设置默认设置下上传延时为300ms下载延时为150ms,大致模拟出来的宽带如下:
上传带宽 = 1KB/300ms = (1 * 8/1000) /0.300 ≈ 0.027Mbps
下载带宽 = 1KB/150ms = (1 * 8/1000) /0.150 ≈ 0.053Mbps
(1MB = 1024 KB ≈ 1000 KB 为了运算简便就用了1000的倍数,忽略误差)
但实际宽带是在计算所得的基础上乘2(至于原因,没有深究),得出上传和下载宽带参数如下:
上传带宽=((18/1000)/0.300)2.0≈0.106Mbps
下载带宽=((18/1000)/0.150)*2.0≈0.053Mbps
fiddler自定义模拟2M宽带设置
即:
上传带宽=((1* 8/1000)/ x )2.0=2
下载带宽=((1 8/1000)/ x )*2.0=2
设置操作:
- 进入fiddler ScriptEditor页面设置参数

- 设置参数如下
if (m_SimulateModem) {// Delay sends by 300ms per KB uploaded.oSession["request-trickle-delay"] = "8"; // Delay receives by 150ms per KB downloaded.oSession["response-trickle-delay"] = "8"; }
保存后去运行对应业务逻辑即可实现限速测试;
设置网络环境随机参数
- 实际上我们网络宽带不是恒定的一个低速的值,而是一定范围内随机抖动,为了模拟真实环境fiddler可以设置一个随机延时量设置,使得网络带宽不是恒定为一个低速的值。
- 设置代码块如下:
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(100,200);// Delay receives by 150ms per KB downloaded.oSession["response-trickle-delay"] = ""+randInt(1,50);
}
- 在代码里找到onBeforeRequest,这里定义了在发送请求前做什么。加入如下代码可以实现延迟:
oSession[“request-trickle-delay”]=“3000”; //请求阶段延迟3秒
oSession[“response-trickle-delay”]=“3000”; //响应阶段延迟3秒
这样基本实现大部分的测试环境的网络模拟限速;
备注:每次编辑并保存配置文件后,Simulate Modem Speeds选项会被取消,需要重新勾选。
学习来源:
[1]:https://www.jianshu.com/p/a9e5605bb454
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
