一、前言:弱网环境带来的问题、测试目的
弱网,即在地铁、隧道、电梯、车库等场景下使用APP,这种软网的情况下,网络会出现延时、中断、超时等情况……所以,在弱网的测试条件下,要测试产品的运行状态、处理机制、提示信息、以及恢复网络后的连接等;比如:在网速很慢的情况下,我们希望看到的是先渲染出用户界面、而不是让用户先看到一片空白。
弱网环境带来的问题:1.操作后,反应慢;2.用户体验差;3.出现bug的可能性会增加
弱网测试的目的:弱网测试的目的是让APP在任何网络下都能表现自如,让开发了解弱网环境下,APP可预见的BUG;进而进行针对性优化;
二、弱网的场景模拟
我们需要模拟出至少3种情况:
1.网络慢或延迟,导致加载时间长;
2.网络中断,Web服务器返回500等状态码;
3.网络超时,HTTP请求发出去后,很久都没有响应;
三、弱网模拟、精确控制网速的方式
1.Rules----》Performance----》Simulate Modem Speeds
这种方式,是最为简单的弱网模拟方式,其限制的强度,就是FiddlerScript中基本的脚本写的那样;
2.既然知道了其根本,就知道可以直接改FiddlerScript这段脚本的数据,使其弱网的强度更大;将延时的数字该大一点,就可以看到效果了……这就是精确控制网速
if (m_SimulateModem) {
// Delay sends by 300ms per KB uploaded.每上传1KB,延时0.3s
oSession["request-trickle-delay"] = "300";
// Delay receives by 150ms per KB downloaded.每下载1KB数据,延时0.15s
oSession["response-trickle-delay"] = "150";
}
注意:修改了FiddlerScript这句脚本,保存之后,Rules----》Performance----》Simulate Modem Speeds会去掉勾选;所以你需要再次勾选这个;
四、综述上面弱网的效果(以qq浏览器访问www.baidu.com为例,看一下腾讯大哥在弱网下的提示)
1.在弱网强度该高上传1kb延迟1.2s,下载1kb延时0.55s时,手机上qq浏览器的效果:
2.再来看不同情况下,Fiddler抓包的情况,接口请求的时间
五、如何在Fiddler上Session列表中添加time列
在FiddlerScript中脚本中加上下面的方法,然后保存,然后重新打开Fiddler,即可!
function BeginRequestTime(oS: Session)
{
if (oS.Timers != null)
{
return oS.Timers.ClientBeginRequest.ToString();
}
return String.Empty;
}
public static BindUIColumn("Time Taken")
function CalcTimingCol(oS: Session){
var sResult = String.Empty;
if ((oS.Timers.ServerDoneResponse > oS.Timers.ClientDoneRequest))
{
sResult = (oS.Timers.ServerDoneResponse - oS.Timers.ClientDoneRequest).ToString();
}
return sResult;
}