在當今移動網際網路盛行的時代,網路的形態除了有線連線,還有2G/3G/4G/5G/WiFi等多種手機網路連線方式。不同的協議、不同的制式、不同的速率,使移動應用執行的場景更加豐富。目前移動端產品的使用使用者所處的網路並非完全流暢的網路環境,因移動端產品使用場景多變,如進地鐵、上公交、進電梯等,使得弱網測試顯得尤為重要。畢竟考慮到各種場景的客戶端展示及容錯,能極大提升產品印象和使用者體驗。本文就和大家分享一下如何上手弱網測試,弱網測試工具的使用。
1. 什麼是弱網測試?弱網測試作為健壯性測試的重要部分,對於移動端測試來說必不可少。從測試角度來說,需要額外關注的場景就遠不止斷網、網路故障等情況了。對於弱網的資料定義,不同的應用所界定的含義是不一樣且不清晰的,不僅要考慮各型別網路最低速率,還要結合業務場景和應用型別去劃分。按照移動的特性來說,一般應用低於2G速率的都屬於弱網,也可以將3G劃分為弱網。除此之外,弱訊號的WiFi通常也會被納入到弱網測試場景中。
1.1 弱網的功能測試這一部分主要是在各種不穩定的網路環境下進行的功能測試,同時模擬高延遲、高丟包的異常網路下進行健壯性測試。2G/3G/4G/5G的網路可以透過使用電話卡移動/聯通/電信等網路進行模擬,關注遊戲介面的響應時間、介面呈現是否完整一致等。
弱網功能測試建議將整體的功能測試用例在弱網環境下進行一輪測試,相同的模組下的功能可以分多個網路條件進行測試。這部分發現的問題可能會有:介面圖片在弱網環境下載入不出來(這就需要對圖片載入邏輯進行最佳化)、介面排版結構混亂(這就需要介面在佈局是在弱網環境的載入進行最佳化)、介面長時間響應沒有任何顯示(這就需要在顯示邏輯進行最佳化,以及引入重試機制)等。
1.2 無網狀態測試無網狀態測試則是在切換網路的情況下進行的測試,主要關注介面的顯示、使用者互動、本地資料的儲存斷網功能的使用等。經常該部分也需要與網路切換部分協同進行。通常來說:
斷網情況下請求一個非本地資料時需要設定一定的時間等待上限,及時提示玩家網路異常以及重試機制;
斷網情況下請求一個部分本地資料的介面需要觀察本地資料的部分是否載入顯示正常,待請求的部分是否符合使用者互動給的預設樣式;
斷網情況下請求一個完全本地資料的介面是否顯示正常。這裡還需要考慮本地資料儲存的情況,有些需要聯網後上報伺服器的資料本地是否正確的儲存,聯網後這些資料能否正常上報。
1.3 網路切換測試這部分主要是進行幾個不同網路場景的切換,包括WiFi到2G/3G/4G/5G、WiFi到無網、2G/3G/4G/5G到WiFi、無網到2G/3G/4G/5G、無網到WiFi等。主要關注頁面的顯示與互動、尤其是弱網到WiFi、WiFi到弱網的情況,是否會有crash以及顯示的錯亂、客戶端伺服器資料的一致性、請求堆積的處理等。
1.4 使用者體驗關注弱網測試的最重要的目的就是儘可能保證使用者體驗。關注的關鍵點包括:
介面響應時間是 否可接受,包括熱啟動、冷啟動時間,介面切換,前後臺切換,首字顯示時間,首屏顯示時間等;
介面呈現是否完整一致;
超時文案是否符合定義,異常資訊是否顯示正常;
是否有超時重連機制;
安全形度:登入ip更換頻繁、單點登入異常等;
大流量事件風險:是否會在弱網下進行更新apk包、下載檔案等大流量動作。
2. 如何做弱網測試?對於測試人員來說,要高效的進行弱網測試,就需要藉助第三方工具搭建出各種弱網的環境,模擬一個弱網環境即可。
2.1 弱網工具介紹目前在測試移動裝置上進行弱網路專項測試的方案主要有3種:
第一種:透過裝置連線到PC上進行弱網路測試,比如Fiddler,Charles,Network Emulator Toolkit等。以Charles為例,基本思路是在PC上裝一個Charles網路抓包工具,然後再將裝置的網路代理到PC上,透過在PC上的Charles設定延時來進行弱網路模擬。
如下圖所示:開啟設定介面
進行常用的網速模擬設定
第二種:在專有伺服器上構建弱網路WiFi,移動裝置連線該WiFi進行弱網路測試,相關的技術方案有Facebook的ATC和騰訊的Wetest-WiFi。以(Augmented Traffic Control)ATC為例,原理實際是利用了Linux流量控制系統,透過純Python的網路庫pyroute2呼叫netlink的API控制,它是搭建在Linux服務端的Web服務,透過移動裝置訪問web服務來選擇測試的網路環境。
如下圖所示:開啟Web網頁進行網路測試環境選擇
第三種:以獨立 app 的方式,為使用者提供弱網路模擬服務。比如騰訊 wetest 服務平臺推出的弱網測試工具QNET,在Android裝置上直接安裝使用。
如下圖所示:使用者根據自己的測試需求自定義弱網引數模板
2.2 弱網工具的優缺點對比第一種透過裝置連線到PC上進行弱網路測試的抓包工具Charles、Fiddler。
優點:抓包工具PC端安裝方便,支援網路協議抓包;根據自己的測試需求自定義弱網引數,配置更為靈活;支援多系統平臺。
缺點:移動裝置網路代理連線PC時需要安裝相應證書,較麻煩;Fiddler不支援丟包、抖動等弱網環境。
第二種在專有伺服器上構建弱網路WiFi的方式。
優點:在手機上透過Web介面就可以隨時切換不同的網路環境;多個手機可以連線到同一個WIFI下,相互之間模擬的網路環境各不影響。
缺點:搭建成本高,需要準備支援AP模式且有驅動的網絡卡和Linux伺服器,有專門的技術人員支援;切換到網路模擬介面改引數,然後再切回被測APP,影響被測APP的操作連貫性。
第三種以獨立 app 的方式提供弱網路模擬服務。
優點:安裝簡便,應用介面簡潔易上手;支援使用者根據自己的測試需求自定義弱網引數模板,有比較好的靈活性。
缺點:目前只支援Android平臺裝置。
以上各方案都是比較成熟的弱網測試工具的使用,可根據實際情況進行選擇。
下方是不同網路環境下速度的圖片,測試時可參照設定:
PS: