弱网测试2022
?
當前APP網絡環境比較復雜,網絡制式有2G、3G、4G網絡,還有越來越多的公共Wi-Fi。不同的網絡環境和網絡制式的差異,都會對用戶使用app造成一定影響。另外,當前app使用場景多變,如進地鐵、上公交、進電梯等,使得弱網測試顯得尤為重要。
如果app沒有對各種網絡異常進行兼容處理,那么用戶可能在日常生活中遇到APP閃退、ANR、數據丟失等問題。因此,app網絡測試,特別是弱網測試尤為重要。本文梳理了app網絡測試要點和弱網測試常用模擬方法,讓大家對網絡測試有一個全面的認識。
01
APP網絡測試要點
1、各個網絡下功能測試
-
不同網絡下,檢查基本功能點
-
運營商移動、聯通、電信接入點測試(需要使用實際SIM卡)
-
若有智能DNS功能,還需要關注運營商判斷/歸類
-
高延時、高丟包、無網、假熱點也可歸入弱網測試范疇
2、網絡切換測試
部分APP有智能DNS功能,網絡切換涉及DNS切換。
網絡切換檢測機制:Android可以監聽系統廣播
3、弱網測試
用戶體驗和異常處理是各個網絡場景都需要關注的,只是弱網場景下,需要重點關注。
02
弱網測試模擬
1、什么樣的網絡屬于弱網
低于2G速率的時候都屬于弱網,3G也可劃分為弱網,一般Wi-Fi不劃入弱網測試范疇。
2、如何進行弱網測試
-
SIM卡的網絡切換
手機-設置-移動網絡設置-網絡類型選擇
3G、4G卡都可以設置關閉3G/4G,只走2G網絡。 -
具體弱網場景測試,常見場景包括:地鐵/巴士、電梯、樓梯間、停車場
-
使用虛擬機模擬網絡速度,如用樹莓派搭建的弱網測試儀
-
使用軟件進行網絡代理,模擬不同的網絡帶寬、延時率、丟包率
3、弱網模擬常用工具
方法一:charles弱網模擬
?
配置參數解析:
-
bandwidth?——?帶寬,即上行、下行數據傳輸速度
-
utilisation?——?帶寬可用率,大部分modern是100%
-
round-trip latency?——?第一個請求的時延,單位是ms
-
MTU?——?最大傳輸單元,即TCP包的最大size,可以更真實模擬TCP層,每次傳輸的分包情況
-
Releability?—— 指連接的可靠性。這里指的是10kb的可靠率。用于模擬網絡不穩定
-
Stability?——?連接穩定性,也會影響帶寬可用性。用于模擬移動網絡,移動網絡連接一般不可靠
具體網絡設置參考:
Fiddler也可以進行弱網環境模擬
方法二:chrome的webview調試工具弱網模擬
使用chrome的webview調試工具,缺點是只適用于web頁面的弱網模擬。
具體步驟:
-
應用打開webview調試功能,具體如下:
if?(Build.VERSION.SDK_INT >=?Build.VERSION_CODES.KITKAT)?{undefined
? ? WebView.setWebContentsDebuggingEnabled(true);
}
-
手機鏈接電腦,運行APP,進入具體H5頁面;
-
chrome的DevTools中打開Webview:進入chrome://inspect/#devices,會顯示已經連接設備,選中待調試webview的inspect network頁面,No throttling下拉框,可以進行網絡模擬。
方法三:
iOS手機自帶Network Link Conditioner 弱網模擬
iPhone手機打開開發者選項:
設置-開發者選項 > Network Link Conditioner 入口。
系統已經內置常見網絡配置,也可以增加自定義配置。
具體配置參數:
-
in Bandwidth?下行帶寬,即下行網絡速度
-
In packet loss?下行丟包率
-
in delay?下行延遲,單位ms
-
out bandwidth?上行帶寬
-
out packet loss?上行丟包率
-
out delay?上行延遲
-
DNS delay?DNS 解析延遲
-
protocol?支持Any,IPV4、IPV6
-
interface?支持Any,WI-Fi,cellular(蜂窩網)
具體步驟參考:

?
網絡測試經典問題分享
-
場景一:弱網下,頁面加載過程,程序閃退
原因:webview超時處理未在UI線程。toast、關閉頁面等操作需要在UI線程 -
場景二:302跳轉頁面,達到內置超時閥值后,webview自動關閉
原因:業務有頁面加載超時自動關閉的邏輯,超時機制未考慮302場景
?
總結
- 上一篇: 安装会声会影教程
- 下一篇: 使用vite创建单页应用