简介
难能可贵的是执着与坚持
使用fiddler模拟网络环境
-
点击菜单栏Rules=》Customize Rules,打开FiddlerScript,也可以直接在fiddler的右边窗口找到“FiddlerScript”标签打开。
打开script的方式1.png
打开script的方式2.png
备注:其默认位于用户目录的文档目录下的\Fiddler2\Scripts 。
- 打开文件,可以搜索“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的数据会被延时多少毫秒
默认是300和150,大致模拟出来的带宽如下
上传带宽=(1*8/1000)/0.300≈0.053Mbps
下载带宽=(1*8/1000)/0.150≈0.027Mbps
实际贷款是在计算所得的基础上乘2。也就是说
上传带宽=((1*8/1000)/0.300)*2.0≈0.106Mbps
下载带宽=((1*8/1000)/0.150)*2.0≈0.053Mbps
至于为什么,没有研究。
比如我模拟一个2M左右的带宽的设置如下
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";
模拟2M带宽.png
-
设置fiddler的Rules,注意只有设置改rule,才会使用方才配置的参数。
image.png -
怎么模拟上下波动的带宽
模拟网络带宽不是恒定的一个低速的值,而是一定范围内随机抖动:
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,300);
// Delay receives by 150ms per KB downloaded.
oSession["response-trickle-delay"] = ""+randInt(1,50);
}
end