弱網(wǎng)測(cè)試怎么做,這是我看過最詳細(xì)的文章!
當(dāng)前APP網(wǎng)絡(luò)環(huán)境比較復(fù)雜,網(wǎng)絡(luò)制式有2G、3G、4G網(wǎng)絡(luò),還有越來越多的公共Wi-Fi。不同的網(wǎng)絡(luò)環(huán)境和網(wǎng)絡(luò)制式的差異,都會(huì)對(duì)用戶使用app造成一定影響。另外,當(dāng)前app使用場(chǎng)景多變,如進(jìn)地鐵、上公交、進(jìn)電梯等,使得弱網(wǎng)測(cè)試顯得尤為重要。
如果app沒有對(duì)各種網(wǎng)絡(luò)異常進(jìn)行兼容處理,那么用戶可能在日常生活中遇到APP閃退、ANR、數(shù)據(jù)丟失等問題。因此,app網(wǎng)絡(luò)測(cè)試,特別是弱網(wǎng)測(cè)試尤為重要。本文梳理了app網(wǎng)絡(luò)測(cè)試要點(diǎn)和弱網(wǎng)測(cè)試常用模擬方法,讓大家對(duì)網(wǎng)絡(luò)測(cè)試有一個(gè)全面的認(rèn)識(shí)。

1、各個(gè)網(wǎng)絡(luò)下功能測(cè)試
不同網(wǎng)絡(luò)下,檢查基本功能點(diǎn)
運(yùn)營(yíng)商移動(dòng)、聯(lián)通、電信接入點(diǎn)測(cè)試(需要使用實(shí)際SIM卡)
若有智能DNS功能,還需要關(guān)注運(yùn)營(yíng)商判斷/歸類
高延時(shí)、高丟包、無網(wǎng)、假熱點(diǎn)也可歸入弱網(wǎng)測(cè)試范疇
2、網(wǎng)絡(luò)切換測(cè)試
部分APP有智能DNS功能,網(wǎng)絡(luò)切換涉及DNS切換。
網(wǎng)絡(luò)切換檢測(cè)機(jī)制:Android可以監(jiān)聽系統(tǒng)廣播
3、弱網(wǎng)測(cè)試
用戶體驗(yàn)和異常處理是各個(gè)網(wǎng)絡(luò)場(chǎng)景都需要關(guān)注的,只是弱網(wǎng)場(chǎng)景下,需要重點(diǎn)關(guān)注。
1、什么樣的網(wǎng)絡(luò)屬于弱網(wǎng)
低于2G速率的時(shí)候都屬于弱網(wǎng),3G也可劃分為弱網(wǎng),一般Wi-Fi不劃入弱網(wǎng)測(cè)試范疇。
2、如何進(jìn)行弱網(wǎng)測(cè)試
SIM卡的網(wǎng)絡(luò)切換
手機(jī)-設(shè)置-移動(dòng)網(wǎng)絡(luò)設(shè)置-網(wǎng)絡(luò)類型選擇
3G、4G卡都可以設(shè)置關(guān)閉3G/4G,只走2G網(wǎng)絡(luò)。具體弱網(wǎng)場(chǎng)景測(cè)試,常見場(chǎng)景包括:地鐵/巴士、電梯、樓梯間、停車場(chǎng)
使用虛擬機(jī)模擬網(wǎng)絡(luò)速度,如用樹莓派搭建的弱網(wǎng)測(cè)試儀
使用軟件進(jìn)行網(wǎng)絡(luò)代理,模擬不同的網(wǎng)絡(luò)帶寬、延時(shí)率、丟包率
3、弱網(wǎng)模擬常用工具
方法一:charles弱網(wǎng)模擬


配置參數(shù)解析:
bandwidth?——?帶寬,即上行、下行數(shù)據(jù)傳輸速度
utilisation?——?帶寬可用率,大部分modern是100%
round-trip latency?——?第一個(gè)請(qǐng)求的時(shí)延,單位是ms
MTU?——?最大傳輸單元,即TCP包的最大size,可以更真實(shí)模擬TCP層,每次傳輸?shù)姆职闆r
Releability?—— 指連接的可靠性。這里指的是10kb的可靠率。用于模擬網(wǎng)絡(luò)不穩(wěn)定
Stability?——?連接穩(wěn)定性,也會(huì)影響帶寬可用性。用于模擬移動(dòng)網(wǎng)絡(luò),移動(dòng)網(wǎng)絡(luò)連接一般不可靠
具體網(wǎng)絡(luò)設(shè)置參考:


Fiddler也可以進(jìn)行弱網(wǎng)環(huán)境模擬
方法二:chrome的webview調(diào)試工具弱網(wǎng)模擬
使用chrome的webview調(diào)試工具,缺點(diǎn)是只適用于web頁面的弱網(wǎng)模擬。
具體步驟:
應(yīng)用打開webview調(diào)試功能,具體如下:
if?(Build.VERSION.SDK_INT >=?Build.VERSION_CODES.KITKAT)?{undefined
? ? WebView.setWebContentsDebuggingEnabled(true);
}
手機(jī)鏈接電腦,運(yùn)行APP,進(jìn)入具體H5頁面;
chrome的DevTools中打開Webview:進(jìn)入chrome://inspect/#devices,會(huì)顯示已經(jīng)連接設(shè)備,選中待調(diào)試webview的inspect network頁面,No throttling下拉框,可以進(jìn)行網(wǎng)絡(luò)模擬。

方法三:
iOS手機(jī)自帶Network Link Conditioner 弱網(wǎng)模擬
iPhone手機(jī)打開開發(fā)者選項(xiàng):
設(shè)置-開發(fā)者選項(xiàng) > Network Link Conditioner 入口。
系統(tǒng)已經(jīng)內(nèi)置常見網(wǎng)絡(luò)配置,也可以增加自定義配置。
具體配置參數(shù):
in Bandwidth?下行帶寬,即下行網(wǎng)絡(luò)速度
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(蜂窩網(wǎng))
具體步驟參考:
?
?


網(wǎng)絡(luò)測(cè)試經(jīng)典問題分享
場(chǎng)景一:弱網(wǎng)下,頁面加載過程,程序閃退
原因:webview超時(shí)處理未在UI線程。toast、關(guān)閉頁面等操作需要在UI線程場(chǎng)景二:302跳轉(zhuǎn)頁面,達(dá)到內(nèi)置超時(shí)閥值后,webview自動(dòng)關(guān)閉
原因:業(yè)務(wù)有頁面加載超時(shí)自動(dòng)關(guān)閉的邏輯,超時(shí)機(jī)制未考慮302場(chǎng)景
--------?THE END?--------
