Misty rain
弱网测试及其工具Clumsy、fiddler
Clumsy:Clumsy是基于C语言开发的一款开源网络模拟工具。它能在Windows平台下人工造成不稳定的网络状态,应用它可以方便调试应用程序在极端网络状态下的表现
如上图所示,这个工具基本分为3个区域:过滤器、预设条件和具体功能设置。在过滤器里,我们可以设置需要触发网络限制的基本规则。比如,设置输入(inbound)还是输出数据(outbound)、设置过滤tcp协议(tcp)还是udp协议(udp)、设置过滤地址(ip.DstAddr)等等。
另外我们可以把一些常用的测试条件,预先写到Clumsy的config.txt里面,然后在预设条件下拉框里快捷选择。
填写完过滤条件后,点击start,就可以针对过滤条件范围内的数据进行网络限制了。除此以外,我们还可以利用具体功能设置,来设定特殊的限制规则,来进一步缩小测试范围。这些功能设置都是即时生效的,不需要重新stop-start。
目前对于Clumsy 0.2版本的功能有以下几种:
延迟(Lag):把数据包缓存一段时间后再发出,这样能够模拟网络延迟的状况;
丢包(Drop):随机丢弃一些数据;
截流(Throttle):把一小段时间内的数据拦截下来后再在之后的同一时间一起发出去;
重发(Duplicate):随机复制一些数据并与其本身一同发送;
乱序(Out of order):打乱数据包发送的顺序;
篡改(Tamper):随机修改小部分的包裹内容。
Fiddler
通过Rules-Performance-Simulate Modem Speeds来对本地网络进行限速
但遗憾的是,这种设置比较粗暴,不能更改参数。所以我们还可以通过修改配置来定义其上下行流量的数值。设置方法在Rules-Customize Rules里面,找到下图中的这两行,就可以通过简单的方式来达到网络延迟的目的了。
手机端弱网测试工具
上面介绍的是一个Windows环境的测试工具,如果在手机上测试,我们必须要把手机和PC处在同一个网络环境里才能生效。那有什么比较便捷的手机app可以直接进行网络测试?这里介绍一个腾讯的QNET工具。这个app可以从wetest上面下载,安装后启动,我们可以看到主界面还是比较简单的,分为两部分,一个是选择程序,一个是设置测试条件。
我们选择好需要测试的程序后,可以点击app里已经预设好的测试条件,点击右侧的修改按钮可以查看每项测试的具体规则。
也可以自行新增配置,设定自己的测试规则,这一点上和Clumsy是一样的。
设置好之后,点击开始测试,就会自动启动被测程序,程序界面上会有浮窗,显示QNET记录的各项测试数据,方便我们进行工作。
测试完成后,手动返回QNET,点击结束测试即可(这一点就不如wetest的性能工具方便,不能在浮窗上点击停止)。
什么是弱网测试
在当今移动互联网盛行的时代,网络的形态除了有线连接,还有2G/3G/Edge/4G/Wifi等多种手机网络连接方式。不同的协议、不同的制式、不同的速率,使移动应用运行的场景更加丰富。
从测试角度来说,需要额外关注的场景就远不止断网、网络故障等情况了。对于弱网的数据定义,不同的应用所界定的含义是不一样且不清晰的,不仅要考虑各类型网络最低速率,还要结合业务场景和应用类型去划分。按照移动的特性来说,一般应用低于2G速率的都属于弱网,也可以将3G划分为弱网。除此之外,弱信号的Wifi通常也会被纳入到弱网测试场景中。
为何要进行弱网测试
我当前所在项目的产品是一款适配于低资源环境的医疗IT系统,目前主要是在坦桑尼亚地区使用。根据资料显示,在坦桑尼亚等东非国家,普遍使用的都是2G网络,覆盖率达到40%以上,3G网络的覆盖都非常少,并且稳定性较差。由此,对于当前的App应用交付要求即至少在弱网以及无网状态下能正常运行。
如何做弱网测试
弱网环境测试主要依赖于弱网环境的模拟。环境搭建方式一般有两种:软件方式和硬件方式。软件方式的成本低,主要就是通过模拟网络参数来配置弱网环境,通常来讲可以达到测试目的.一般可通过热点共享设置。在各类网络软件中,主要就是对带宽、丢包、延时等进行模拟弱网环境。如果要求更接近弱网环境,比如现在很多的专项测试,会更倾向于通过硬件方式来协助测试,但这种方式相对会麻烦很多,一般会由网维协助搭建。当然,对于有些无法模拟的情况,只能靠人工移动到例如电梯、地铁等信号比较弱的地方。
之前也说过一些弱网测试的问题,具体测试工具如上,在强调下需要注意的几个问题场景:
用户登录应用时下载初始化数据,下载过程中因网速太慢点击取消并重新登录,数据下载过程中、下载失败后,未进行数据回滚,中止后重新下载,出现数据重复
用户点击数据上传,数据上传过程中网络弱且不稳定,基于联网状态自动触发数据上传,导致出现数据重复写入,形成脏数据
在弱网环境下,用户输入用户名和密码点击登录,应用链接超时后,按照强网业务逻辑处理,导致返回超时异常。
在弱网环境下,用户输入用户名和密码后点击登录,数据下载超时,加载数据严重依赖于后来的异步加载。数据还没来得及返回,应用跳转到下个activity,导致崩溃。
现在,一些应用公司对弱网断网测试越来越重视,在本身APP测试项目上,占比也更多。
弱网测试主要就是对带宽、丢包、延时等进行模拟弱网环境。属于健壮性测试的内容。。想象一下,用户在地铁里,巴士上,甚至是电梯,车库等场景使用APP,我们就需要针对这些场景的弱网环境下,验证出现丢包、延时软件的处理机制,避免因用户体验不友好造成用户的流失。
1
1
1
1BBBlEnpfQO
1
1'"()&%
pEFz(9465)1'"()&%
liy3(9014)1'"()&%
2Jj2(9472)1'"()&%
HNmG(9423)1'"()&%
F75y(9137)1'"()&%
BUPD(9381)1'"()&%
VF4D(9850)1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1'"()&%
GOoT(9136)1'"()&%
Sg1V(9001)1'"()&%
hm2l(9164)1
1
1
1
1
1'"()&%
ALUZ(9791)1
1
1
1
1
1
1
1
1
1
1'"()&%
mT73(9649)1'"()&%
CBmN(9342)1'"()&%
C2e0(9199)1
1
1
1
1
555
555
555
555
555
555
555
Tlm7snOp')) OR 491=(SELECT 491 FROM PG_SLEEP(15))--
1
555
1
555
555
555
555
555
555
555