本文轉載自:騰訊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測試環境的小白來說,推薦使用。