在當(dāng)今移動(dòng)互聯(lián)網(wǎng)盛行的時(shí)代,網(wǎng)絡(luò)的形態(tài)除了有線連接,還有2G/3G/4G/5G/WiFi等多種手機(jī)網(wǎng)絡(luò)連接方式。不同的協(xié)議、不同的制式、不同的速率,使移動(dòng)應(yīng)用運(yùn)行的場(chǎng)景更加豐富。目前移動(dòng)端產(chǎn)品的使用用戶所處的網(wǎng)絡(luò)并非完全流暢的網(wǎng)絡(luò)環(huán)境,因移動(dòng)端產(chǎn)品使用場(chǎng)景多變,如進(jìn)地鐵、上公交、進(jìn)電梯等,使得弱網(wǎng)測(cè)試顯得尤為重要。畢竟考慮到各種場(chǎng)景的客戶端展示及容錯(cuò),能極大提升產(chǎn)品印象和用戶體驗(yàn)。本文就和大家分享一下如何上手弱網(wǎng)測(cè)試,弱網(wǎng)測(cè)試工具的使用。
1. 什么是弱網(wǎng)測(cè)試?
弱網(wǎng)測(cè)試作為健壯性測(cè)試的重要部分,對(duì)于移動(dòng)端測(cè)試來說必不可少。從測(cè)試角度來說,需要額外關(guān)注的場(chǎng)景就遠(yuǎn)不止斷網(wǎng)、網(wǎng)絡(luò)故障等情況了。對(duì)于弱網(wǎng)的數(shù)據(jù)定義,不同的應(yīng)用所界定的含義是不一樣且不清晰的,不僅要考慮各類型網(wǎng)絡(luò)最低速率,還要結(jié)合業(yè)務(wù)場(chǎng)景和應(yīng)用類型去劃分。按照移動(dòng)的特性來說,一般應(yīng)用低于2G速率的都屬于弱網(wǎng),也可以將3G劃分為弱網(wǎng)。除此之外,弱信號(hào)的WiFi通常也會(huì)被納入到弱網(wǎng)測(cè)試場(chǎng)景中。

1.1 弱網(wǎng)的功能測(cè)試
這一部分主要是在各種不穩(wěn)定的網(wǎng)絡(luò)環(huán)境下進(jìn)行的功能測(cè)試,同時(shí)模擬高延遲、高丟包的異常網(wǎng)絡(luò)下進(jìn)行健壯性測(cè)試。2G/3G/4G/5G的網(wǎng)絡(luò)可以通過使用電話卡移動(dòng)/聯(lián)通/電信等網(wǎng)絡(luò)進(jìn)行模擬,關(guān)注游戲界面的響應(yīng)時(shí)間、界面呈現(xiàn)是否完整一致等。
弱網(wǎng)功能測(cè)試建議將整體的功能測(cè)試用例在弱網(wǎng)環(huán)境下進(jìn)行一輪測(cè)試,相同的模塊下的功能可以分多個(gè)網(wǎng)絡(luò)條件進(jìn)行測(cè)試。這部分發(fā)現(xiàn)的問題可能會(huì)有:界面圖片在弱網(wǎng)環(huán)境下加載不出來(這就需要對(duì)圖片加載邏輯進(jìn)行優(yōu)化)、界面排版結(jié)構(gòu)混亂(這就需要界面在布局是在弱網(wǎng)環(huán)境的加載進(jìn)行優(yōu)化)、界面長時(shí)間響應(yīng)沒有任何顯示(這就需要在顯示邏輯進(jìn)行優(yōu)化,以及引入重試機(jī)制)等。
1.2 無網(wǎng)狀態(tài)測(cè)試
無網(wǎng)狀態(tài)測(cè)試則是在切換網(wǎng)絡(luò)的情況下進(jìn)行的測(cè)試,主要關(guān)注界面的顯示、用戶交互、本地?cái)?shù)據(jù)的存儲(chǔ)斷網(wǎng)功能的使用等。經(jīng)常該部分也需要與網(wǎng)絡(luò)切換部分協(xié)同進(jìn)行。通常來說:
斷網(wǎng)情況下請(qǐng)求一個(gè)非本地?cái)?shù)據(jù)時(shí)需要設(shè)定一定的時(shí)間等待上限,及時(shí)提示玩家網(wǎng)絡(luò)異常以及重試機(jī)制;
斷網(wǎng)情況下請(qǐng)求一個(gè)部分本地?cái)?shù)據(jù)的界面需要觀察本地?cái)?shù)據(jù)的部分是否加載顯示正常,待請(qǐng)求的部分是否符合用戶交互給的缺省樣式;
斷網(wǎng)情況下請(qǐng)求一個(gè)完全本地?cái)?shù)據(jù)的界面是否顯示正常。這里還需要考慮本地?cái)?shù)據(jù)存儲(chǔ)的情況,有些需要聯(lián)網(wǎng)后上報(bào)服務(wù)器的數(shù)據(jù)本地是否正確的存儲(chǔ),聯(lián)網(wǎng)后這些數(shù)據(jù)能否正常上報(bào)。
無網(wǎng)狀態(tài)測(cè)試建議按照頁面劃分進(jìn)行,針對(duì)每個(gè)頁面單獨(dú)測(cè)試無網(wǎng)狀態(tài)的顯示,界面間跳轉(zhuǎn)的顯示,界面功能的點(diǎn)擊和顯示,同時(shí)關(guān)注無網(wǎng)到有網(wǎng)時(shí)的頁面恢復(fù)顯示狀態(tài)、數(shù)據(jù)上報(bào)情況是否正常。
1.3 網(wǎng)絡(luò)切換測(cè)試
這部分主要是進(jìn)行幾個(gè)不同網(wǎng)絡(luò)場(chǎng)景的切換,包括WiFi到2G/3G/4G/5G、WiFi到無網(wǎng)、2G/3G/4G/5G到WiFi、無網(wǎng)到2G/3G/4G/5G、無網(wǎng)到WiFi等。主要關(guān)注頁面的顯示與交互、尤其是弱網(wǎng)到WiFi、WiFi到弱網(wǎng)的情況,是否會(huì)有crash以及顯示的錯(cuò)亂、客戶端服務(wù)器數(shù)據(jù)的一致性、請(qǐng)求堆積的處理等。
1.4 用戶體驗(yàn)關(guān)注
弱網(wǎng)測(cè)試的最重要的目的就是盡可能保證用戶體驗(yàn)。關(guān)注的關(guān)鍵點(diǎn)包括:
界面響應(yīng)時(shí)間是 否可接受,包括熱啟動(dòng)、冷啟動(dòng)時(shí)間,界面切換,前后臺(tái)切換,首字顯示時(shí)間,首屏顯示時(shí)間等;
界面呈現(xiàn)是否完整一致;
超時(shí)文案是否符合定義,異常信息是否顯示正常;
是否有超時(shí)重連機(jī)制;
安全角度:登錄ip更換頻繁、單點(diǎn)登錄異常等;
大流量事件風(fēng)險(xiǎn):是否會(huì)在弱網(wǎng)下進(jìn)行更新apk包、下載文件等大流量動(dòng)作。
2. 如何做弱網(wǎng)測(cè)試?
對(duì)于測(cè)試人員來說,要高效的進(jìn)行弱網(wǎng)測(cè)試,就需要借助第三方工具搭建出各種弱網(wǎng)的環(huán)境,模擬一個(gè)弱網(wǎng)環(huán)境即可。
2.1 弱網(wǎng)工具介紹
目前在測(cè)試移動(dòng)設(shè)備上進(jìn)行弱網(wǎng)絡(luò)專項(xiàng)測(cè)試的方案主要有3種:
第一種:通過設(shè)備連接到PC上進(jìn)行弱網(wǎng)絡(luò)測(cè)試,比如Fiddler,Charles,Network Emulator Toolkit等。以Charles為例,基本思路是在PC上裝一個(gè)Charles網(wǎng)絡(luò)抓包工具,然后再將設(shè)備的網(wǎng)絡(luò)代理到PC上,通過在PC上的Charles設(shè)置延時(shí)來進(jìn)行弱網(wǎng)絡(luò)模擬。
如下圖所示:打開設(shè)置界面

進(jìn)行常用的網(wǎng)速模擬設(shè)置

第二種:在專有服務(wù)器上構(gòu)建弱網(wǎng)絡(luò)WiFi,移動(dòng)設(shè)備連接該WiFi進(jìn)行弱網(wǎng)絡(luò)測(cè)試,相關(guān)的技術(shù)方案有Facebook的ATC和騰訊的Wetest-WiFi。以(Augmented Traffic Control)ATC為例,原理實(shí)際是利用了linux流量控制系統(tǒng),通過純Python的網(wǎng)絡(luò)庫pyroute2調(diào)用netlink的API控制,它是搭建在Linux服務(wù)端的Web服務(wù),通過移動(dòng)設(shè)備訪問web服務(wù)來選擇測(cè)試的網(wǎng)絡(luò)環(huán)境。
如下圖所示:打開Web網(wǎng)頁進(jìn)行網(wǎng)絡(luò)測(cè)試環(huán)境選擇

第三種:以獨(dú)立 App 的方式,為用戶提供弱網(wǎng)絡(luò)模擬服務(wù)。比如騰訊 wetest 服務(wù)平臺(tái)推出的弱網(wǎng)測(cè)試工具QNET,在Android設(shè)備上直接安裝使用。
如下圖所示:用戶根據(jù)自己的測(cè)試需求自定義弱網(wǎng)參數(shù)模板

2.2 弱網(wǎng)工具的優(yōu)缺點(diǎn)對(duì)比
第一種通過設(shè)備連接到PC上進(jìn)行弱網(wǎng)絡(luò)測(cè)試的抓包工具Charles、Fiddler。
優(yōu)點(diǎn):抓包工具PC端安裝方便,支持網(wǎng)絡(luò)協(xié)議抓包;根據(jù)自己的測(cè)試需求自定義弱網(wǎng)參數(shù),配置更為靈活;支持多系統(tǒng)平臺(tái)。
缺點(diǎn):移動(dòng)設(shè)備網(wǎng)絡(luò)代理連接PC時(shí)需要安裝相應(yīng)證書,較麻煩;Fiddler不支持丟包、抖動(dòng)等弱網(wǎng)環(huán)境。
第二種在專有服務(wù)器上構(gòu)建弱網(wǎng)絡(luò)WiFi的方式。
優(yōu)點(diǎn):在手機(jī)上通過Web界面就可以隨時(shí)切換不同的網(wǎng)絡(luò)環(huán)境;多個(gè)手機(jī)可以連接到同一個(gè)WIFI下,相互之間模擬的網(wǎng)絡(luò)環(huán)境各不影響。
缺點(diǎn):搭建成本高,需要準(zhǔn)備支持AP模式且有驅(qū)動(dòng)的網(wǎng)卡和Linux服務(wù)器,有專門的技術(shù)人員支持;切換到網(wǎng)絡(luò)模擬界面改參數(shù),然后再切回被測(cè)APP,影響被測(cè)APP的操作連貫性。
第三種以獨(dú)立 app 的方式提供弱網(wǎng)絡(luò)模擬服務(wù)。
優(yōu)點(diǎn):安裝簡便,應(yīng)用界面簡潔易上手;支持用戶根據(jù)自己的測(cè)試需求自定義弱網(wǎng)參數(shù)模板,有比較好的靈活性。
缺點(diǎn):目前只支持Android平臺(tái)設(shè)備。
以上各方案都是比較成熟的弱網(wǎng)測(cè)試工具的使用,可根據(jù)實(shí)際情況進(jìn)行選擇。
下方是不同網(wǎng)絡(luò)環(huán)境下速度的圖片,測(cè)試時(shí)可參照設(shè)置:

PS:
我們是行者AI,我們?cè)?ldquo;AI+游戲”中不斷前行。
快來【公眾號(hào) | xingzhe_ai】,和我們討論更多技術(shù)問題吧!