https://zhuanlan.zhihu.com/p/98185153
https://www.jianshu.com/p/5e35a3585df5
今年5G技术开始铺开并进入商用。随着5G的到来,不知道大家有没有和我一样的感受,希望是我心理作用吧,我发现作为一个4G用户,最近我的手机网速是不如从前了。特别是在游戏、或者是看一些重要直播的过程中,网络的卡顿延迟,真的让人大为光火。所以我想在最近分享一下,游戏测试需要怎么开展弱网测试,来尽量避免网络问题带给用户的不良体验。
作为移动端游戏测试,网络环境——尤其是弱网环境下——的测试环节其实是必不可少的。而手机上的网络制式类别很多:wifi、2G、3G、4G、5G,应用场景可能就更多了:办公室、街道、商场、地铁、车库等等。在这不同的场景、不同制式下,我们都可能遇到各式各样的断线、卡顿、延迟、数据同步异常等问题。所以,对于测试人员来说,我们面临的第一个难题就是网络环境的模拟。
今天我们先来介绍几个常见的弱网环境模拟工具。
首先是Fiddler。
大家都知道这是一个抓包工具。不过它也可以比较简单的作为一个弱网模拟工具来进行使用。我们可以通过Rules-Performance-Simulate Modem Speeds来对本地网络进行限速。
但遗憾的是,这种设置比较粗暴,不能更改参数。所以我们还可以通过修改配置来定义其上下行流量的数值。设置方法在Rules-Customize Rules里面,找到下图中的这两行,就可以通过简单的方式来达到网络延迟的目的了。
不过这毕竟不是一个专门用于弱网测试的工具,接下来介绍一个专门用作弱网模拟的工具,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):随机修改小部分的包裹内容。
上面介绍的是一个Windows环境的测试工具,如果在手机上测试,我们必须要把手机和PC处在同一个网络环境里才能生效。那有什么比较便捷的手机app可以直接进行网络测试?这里介绍一个腾讯的QNET工具。这个app可以从wetest上面下载,安装后启动,我们可以看到主界面还是比较简单的,分为两部分,一个是选择程序,一个是设置测试条件。
我们选择好需要测试的程序后,可以点击app里已经预设好的测试条件,点击右侧的修改按钮可以查看每项测试的具体规则。
也可以自行新增配置,设定自己的测试规则,这一点上和Clumsy是一样的。
设置好之后,点击开始测试,就会自动启动被测程序,程序界面上会有浮窗,显示QNET记录的各项测试数据,方便我们进行工作。
测试完成后,手动返回QNET,点击结束测试即可(这一点就不如wetest的性能工具方便,不能在浮窗上点击停止)。
Clumsy模拟弱网
①PC端代理设置
首先下载和安装代理服务器工具CCProxy
复制当前网址到浏览器https://pan.baidu.com/s/1YZBHCIiLgEVcxZxngffyVQ
点击弱网工具→勾选第二步→点击第三步的下载→安装下载后的工具
安装完代理工具后,打开服务器代理工具进行下图中操作
②配置手机代理
依次按下图中的步骤执行
设置完手机代理后,用手机打开网页查看是否能正常上网,可以正常上网说明代理设置成功
③Clumsy弱网模拟工具的准备
复制当前网址到浏览器https://pan.baidu.com/s/1YZBHCIiLgEVcxZxngffyVQ
点击弱网工具→勾选第二步→点击第三步的下载→安装下载后的工具
④Clumsy工具参数的设置
打开clumsy,在Filtering输入框中输入:outbound and ip.DstAddr == 192.168.20.254(这是你的手机的IP地址)
然后设置参数
1.延迟(Lag),把数据包缓存一段时间后再发出,这样能够模拟网络延迟的状况。
2.掉包(Drop),随机丢弃一些数据。
3.节流(Throttle),把一小段时间内的数据拦截下来后再在之后的同一时间一同发出去。
4.重发(Duplicate),随机复制一些数据并与其本身一同发送。
5.乱序(Outof order),打乱数据包发送的顺序。
6.篡改(Tamper),随机修改小部分的包裹内容