Fiddler做弱网测试的步骤

面试题:

如何用fiddler做弱网测试?

答:在fiddler脚本编辑器中修改上行下行的延迟时间,然后开启模拟器,就可以开始测试了。

步骤:

1、ctrl+R打开fiddle的脚本编辑窗口,ctrl+F查找response-trickle-delay,找到如下图中的

解释:request-trickle-delay:网络请求的延迟时间,response-trickle-delay:网络响应的延迟时间,单位都是ms

 

网络取值的算法就是 1000/下载速度 = 需要delay的时间(毫秒),比如50kb/s  需要delay200毫秒来接收数据。

  我认为的模拟2G设置request延时=3000ms,response延时=1000ms

                        3G上行100ms,下行40ms

2、修改好代码后,启用模拟器

在fiddler中Rules → Performances → Simulate Modem Speeds 

3、分析

手机点击登录,抓到了登录的包,fiddler中选择这条登录请求,查看右边的statistics面板

 

5、【编写自定义脚本:设置一定范围内随机抖动】
  进一步地,我们可以扩展CustomRules.js里的逻辑,参照Jscript的文档可以在模拟恶劣环境中加入更多自定义的逻辑,这里实现了一个随机延时量设置,使得网络带宽不是恒定为一个低速的值,而是会在一定范围内随机抖动:

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);
}

【Fiddler模拟恶劣网络环境的局限性】
  Fiddler进行限速较为简单和灵活,配置也较为方便,但是由于它是一个应用层的HTTP的代理,只能模拟该层上的行为,对于一些复杂的网络层的丢包、重传等恶劣情况就不能很好的模拟出来,而且对于其他协议的应用也不支持,后续会介绍一些其他的模拟恶劣环境的方法和软件来弥补这些缺失。

posted @ 2022-03-01 17:10  laoluoits  阅读(1299)  评论(0编辑  收藏  举报