有时候,我们想看一下在网速慢的情况下,我们的web页面到底表现如何,页面的一个渲染情况如何,但无奈公司网络太快,怎么办?这时候,fiddler也绝对可以满足你的需求。因为fiddler是一个代理,咱们之前介绍过fiddler可以截获请求和返回,那也绝对可以延迟请求数据的上传过程或者延长返回数据的下载过程,从而达到限制网速的作用。下面我们就来一步一步看下怎样限制网速。
首先点击Rules->Customize Rules,搜索找到“m_SimulateModem”这个地方,修改m_SimulateModem值为true,即开启网络模拟:
var m_SimulateModem: boolean = false;
代码如下:
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”;
}
第一个数值设置的是请求上传过程中的延迟;第二个数值是返回下载过程中的延迟,比如,我把第一个数值的300(单位是毫秒)换成2000,然后保存,保存后,点击Rules->Performance->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,2000);
// Delay receives by 150ms per KB downloaded.
oSession[“response-trickle-delay”] = “”+randInt(1,2000);
}
这里的randInt(1,2000)应该很好理解,代表1-2000中的一个随机整数,这样就会出现偶尔有延迟偶尔网络又良好的情况。