关于弱网
在当今移动互联网盛行的时代,网络的形态除了有线连接,还2G/3G/Edge/4G/Wifi等多种手机网络连接方式。不同的协议、不同的制式、不同的速率,使移动应用运行的场景更加丰富。
从测试角度来说,需要额外关注的场景就远不止断网、网络故障等情况了。对于弱网的数据定义,不同的应用所界定的含义是不一样且不清晰的,不仅要考虑各类型网络最低速率,还要结合业务场景和应用类型去划分。按照移动的特性来说,一般应用低于2G速率的都属于弱网,也可以将3G划分为弱网。除此之外,弱信号的Wifi通常也会被纳入到弱网测试场景中。
特别是在游戏、或者是看一些重要直播的过程中,网络的卡顿延迟,真的让人大为光火。所以我想在最近分享一下,游戏测试需要怎么开展弱网测试,来尽量避免网络问题带给用户的不良体验。
为什么要弱网测试
作为移动端游戏测试,网络环境——尤其是弱网环境下——的测试环节其实是必不可少的。而手机上的网络制式类别很多:wifi、2G、3G、4G、5G,应用场景可能就更多了:办公室、街道、商场、地铁、车库等等。在这不同的场景、不同制式下,我们都可能遇到各式各样的断线、卡顿、延迟、数据同步异常等问题。
我之前负责过一款全球唯一服的一款SLG游戏,核心用户主要集中在美国,北欧,东非,东南亚地区。根据adjust数据分析显示,在坦桑尼亚等东非国家,普遍使用的都是2G网络,覆盖率达到40%以上,3G网络的覆盖都非常少,并且稳定性较差,还有德国等一些北欧国家,俄罗斯的网络环境也比较差,在这种弱网环境下最容易出现一些bug,导致人物移动,技能释放,等状态同步出现问题。由此,对于当前的App应用交付要求即至少在弱网以及无网状态下能正常运行。
为什么要弱网测试
如何做弱网测试
弱网环境测试主要依赖于弱网环境的模拟。弱网测试主要就是对带宽、丢包、延时等进行模拟弱网环境。
环境搭建方式一般有两种:软件方式和硬件方式。软件方式的成本低,主要就是通过模拟网络参数来配置弱网环境,通常来讲可以达到测试目的.一般可通过热点共享设置。在各类网络软件中,主要就是对带宽、丢包、延时等进行模拟弱网环境。如果要求更接近弱网环境,比如现在很多的专项测试,会更倾向于通过硬件方式来协助测试,但这种方式相对会麻烦很多,一般会由网维协助搭建。当然,对于有些无法模拟的情况,只能靠人工移动到例如电梯、地铁等信号比较弱的地方。
属于健壮性测试的内容。。想象一下,用户在地铁里,巴士上,甚至是电梯,车库等场景使用APP,我们就需要针对这些场景的弱网环境下,验证出现丢包、延时软件的处理机制,避免因用户体验不友好造成用户的流失。
这里我给大家推荐一款个人经常用的工具clumsy。
链接: https://pan.baidu.com/s/1B-DCoJeHM124yM3J68luwQ 提取码: fru6 复制这段内容后打开百度网盘手机App,操作更方便哦
Clumsy是基于C语言开发的一款开源网络模拟工具。它能在Windows平台下人工造成不稳定的网络状态,应用它可以方便调试应用程序在极端网络状态下的表现。
目前对于Clumsy 0.2版本的功能有以下几种:
- 延迟(Lag):把数据包缓存一段时间后再发出,这样能够模拟网络延迟的状况;
- 丢包(Drop):随机丢弃一些数据;
- 截流(Throttle):把一小段时间内的数据拦截下来后再在之后的同一时间一起发出去;
- 重发(Duplicate):随机复制一些数据并与其本身一同发送;
- 乱序(Out of order):打乱数据包发送的顺序;
- 篡改(Tamper):随机修改小部分的包裹内容。
软件特色:
1、实时调节多种参数,仔细控制网络情况
2、clumsy支持本地调试(服务器与客户端都在 localhost)
3、clumsy工具下载即用,不需要安装任何东西
4、不需要额外设置,不需要修改你的程序的代码
5、这款网络环境模拟工具 不仅只支持 HTTP,任何 TCP, UDP 的网络连接都能被处理
6、热插拔,你的程序能一直运行,而 clumsy 可以随时打开与关闭
7、系统级别的网络控制,可以适用于命令行,图形界面等任何 Windows 应用程序
clumsy工具不需要安装即可使用,软件界面下图可供参考,大致三部分,过滤器;预知过滤器;功能设置:
编辑
clumsy使用方法:
1、打开clumsy工具,就直接的的点击软件进人
编辑
2、进人到软件的主界面后,就可以选择自己需要的进行使用
presets选择 all sending packets
设置拦截
Lag:延迟,把请求缓存一段时间再发出,可以用来模拟网络延迟,最大3000ms;
Drop:丢包,随机丢弃一些请求;
Throttle:节流,把一小段时间内的请求拦截下来,再在同一时间发出去;
Duplicate:重发,随机复制一些请求,与原请求一起发送;
Out of order:乱序,打乱请求的发送顺序;
Tamper:篡改,随机修改小部分请求的内容;
点击start开始,对应指标前面出现绿点,表示该项拦截生效
点击stop停止
正常情况下,我ping下度娘:
编辑
接下来,我设置了下丢包率:
编辑
可以看到现在已经有比较明显的丢包情况了:
编辑
那么我继续让丢包率达到90%看下效果:
编辑
那么其他的功能,大家都可以探索,总之工具的使用是简单的,但分析排查问题的过程还得结合自己的业务逻辑。
感谢各位粉丝们的持续关注和分享,由于最近项目较忙,未及时更新哈,别走开,精彩仍然继续
编辑