一、弱网设置的目的
在测试过程中,经常会要求测试弱网络情况时的一些特殊场景,由于用户自身网络环境波动,或者是本身网络环境恶劣,而被测系统在面对这种不良网络环境时健壮性不够,导致出现一些意想不到的bug。
在正常开发自测过程中很难去营造这种恶劣的网络环境,使得这些bug较难被提前发现和修复,另外一些服务在恶劣网络环境下虽然不会出现不可用的情况,但是用户的体验感很差,为了优化这个情况下的用户体验,也需要去本地模拟这种环境来进行调优。
二、自定义网速
1.在fiddler的fiddlerScirpt页签中,有一段代码专门用来设置网速
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的数据被下载时会被延迟多少毫秒
2.默认设置下的模拟带宽
默认设置下的上传时延为300ms,下载时延为150ms,大致模拟出来的带宽如下:
上传带宽
1KB/300ms=(1*1000*8)/0.3=26666.667bps=26.667Kbps=0.027Mbps
下载带宽
1KB/150ms=(1*1000*8)/0.15=53333.333bps=53.333Kbps=0.053Mbps
根据fiddler实际模拟经验,实际带宽时在计算所得的基础上乘以2
所以默认的上传带宽:0.027Mbps*2=0.054Mbps 下载带宽:0.053Mbps*2=0.106Mbps
带宽:1Mbps=1000Kbps=1000000bps(位/秒)
字节:1MB=1024KB=1024*1024B;1个字节=8b(位)
1M带宽指的是1Mbps=1000Kbps=1000/8KBps=125KB ps
3.设置模拟1M的宽带
(1*1000*8)/x/1000/1000*2.0=1Mbps
x=0.016s=16ms
设置如下:
if (m_SimulateModem) {
// Delay sends by 300ms per KB uploaded.
oSession["request-trickle-delay"] = "16";
// Delay receives by 150ms per KB downloaded.
oSession["response-trickle-delay"] = "16";
}