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的代理,只能模拟该层上的行为,对于一些复杂的网络层的丢包、重传等恶劣情况就不能很好的模拟出来,而且对于其他协议的应用也不支持,后续会介绍一些其他的模拟恶劣环境的方法和软件来弥补这些缺失。
作者: 千里和他的软件测试
软件测试学习交流: 软件测试交流群 172489141
银行金融业务交流: 软件测试学习交流群 52304542
接口自动化性能交流: 一个正经的测试群 188427938