本文转载自:腾讯WeTest专栏--《MOBA手游客户端网络损伤专项测试浅析》
弱网络专项测试(客户端网络损伤专项测试)是腾讯游戏内部评审时,非常重要的一环,直接决定了产品是否能直接上线运营。针对最近非常火爆的MOBA类游戏,对客户端网络损伤专项测试再做诠释。
1、什么是网络专项测试
MOBA手游的使用过程中,可能会遇到的几个奇怪的遭遇。
| 网速太慢
网友的聊天内容没拉取出来:
头像显示不出来:
l网络拥塞
1V1好友单挑,好友已进入副本战斗,我还在LOADING。。
就是进不去:
l网络异常
好不容易打胜了,没奖励!
人死了,尸体还在,一直在。。。
然后也复活不了,然后,就没有然后了:
1V1,好友小兵没血量却砍不死,处女座不能忍啊:
基地和塔不见了:
技能不见了:
当然,网络不好也会遇到好事,比如源源不断的小兵军团:
看了各种玩家的坑爹遭遇,大家可能也遇到过不少类似的情况,一定能理解网络专项测试的目的和重要性。网络专项测试,顾名思义就是专门针对网络性能的测试。
目前我国2G网络用户占比仍然超过3G/4G用户,这部分用户是低带宽高延时,如果手游对高延时的容忍超过2G用户的平均值必然导致这部分用户的流失。当然,MOBA游戏的玩家肯定都有3G网络了,只是不可避免的一点,3G网络在某些未被覆盖的地区仍然会是2G网络。
缺陷统计表示11%的手游缺陷因为网络问题。游戏Crash排名前十的原因是因为带宽和网络切换。而大部分网络问题都是非必现的,必须通过专项测试精确定位和重现问题根源来弥补普通功能测试的盲区。
2、一般手游网络专项测试方法
2.1测试点
分析游戏,找出游戏中和网络交互有关的关键点,以下测试点优先级较高,需要重点测试:
l正常游戏的主要流程,例如:登录、进入游戏、游戏中操作、游戏结算等;
l游戏中涉及支付购买的地方,例如购买钻石、购买道具、游戏复活等;
l游戏中涉及领取奖励的地方,例如每日奖励、任务奖励、抽奖等;
l游戏中对网络敏感的交互功能,例如实时对战;
测试点示例:
如果游戏是Unity开发的,那么主要针对某个平台测试即可,另外一个平台可以抽测。同时,值得特别注意的是iOS平台的IAP支付也有必要测试一下。
2.2测试方法
2.2.1测试点断网测试
单独针对每一个测试点,分别进行发包断网,收包断网测试。这种方式只适用于客户端单个请求上行对应服务器单个响应回包,收发消息是一对一同步进行的一般手游场景,比如购买,升级,开局,结算等。对测试者要求高,需要清晰了解每个测试点客户端与服务器的交互逻辑,才能设计用例。因为每次只测试一个测试点,覆盖不到游戏并发请求的异常逻辑,且开发只要做好网络底层超时逻辑,一般都能覆盖到全部测试点,因此发现缺陷的效率相比之下较低。
方法示例:
2.2.2组合场景法
设置一种网络模式,执行玩家经常遇到的游戏场景。同时配合在测试点上,采用断网或切换网络等操作,观察是否符合有效(能完成逻辑)或无效预期(不能完成逻辑)。此方法执行起来方便快捷,发现缺陷效率高。适用于MOBA等实时对战类的游戏场景。但是,由于选定的网络有很大的不确定性,不能保证每次执行用例有恒定的网络前提条件作为输入,因此预期都分为有效或无效两种情况,不能保证两种结果都覆盖到,是一种有损的测试方法。
常用网络模式示例:
3、MOBA手游网络专项测试不同之处
MOBA手游特色主要是实时对战,为了达到实时效果又要防止作弊,目前游戏一般采用客户端上报操作,服务器执行逻辑然后异步同步推送给多个客户端的数值表现的方式。由于客户端与服务器收发消息不是一对一同步的,就无法采用测试点断网测试方法,适合采用组合场景法。
实时性强的游戏应该能实时监测到断网或超时的情况并给出界面提示,防止出现不正常的界面表现。
所以对比常规游戏的网络性能测试,由于MOBA手游的节奏快,对测试人员要求更高了,必须眼明手快,也需要更细心。由于网络的不确定性,出现的缺陷基本都是非必现的,因此抓包、截图、录制视频,样样少不了。
这也难怪,MOBA手游虽火,能持续累计玩家口碑,保持稳定增长的确没几家。
4 、测试工具
最后,用例设计好了,场测费时费力,我们还需要寻找更有效的模拟网络的方法。目前市场上有一些耳熟能详的工具或平台可以使用。
1. Microsoft NEWT
只支持单个用户,自己用足够了,搭建环境过程还挺复杂的。
2. Facebook ATC
支持多用户,可以搭建企业平台。
3. 腾讯WeTest
可以很方便的远程访问云平台上的各种手机设备,设置不同的网络模式,支持实时切换网络,对于不会搭建NEWT测试环境的小白来说,推荐使用。