APP网络测试要点和弱网模拟
當(dāng)前APP網(wǎng)絡(luò)環(huán)境比較復(fù)雜,網(wǎng)絡(luò)制式有2G、3G、4G網(wǎng)絡(luò),還有越來(lái)越多的公共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沒(méi)有對(duì)各種網(wǎng)絡(luò)異常進(jìn)行兼容處理,那么用戶可能在日常生活中遇到APP閃退、ANR、數(shù)據(jù)丟失等問(wèn)題。因此,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í)。
APP網(wǎng)絡(luò)測(cè)試要點(diǎn)

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ú)網(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)系統(tǒng)廣播
3、弱網(wǎng)測(cè)試
用戶體驗(yàn)和異常處理是各個(gè)網(wǎng)絡(luò)場(chǎng)景都需要關(guān)注的,只是弱網(wǎng)場(chǎng)景下,需要重點(diǎn)關(guān)注。
弱網(wǎng)測(cè)試模擬
什么樣的網(wǎng)絡(luò)屬于弱網(wǎng)
低于2G速率的時(shí)候都屬于弱網(wǎng),3G也可劃分為弱網(wǎng),一般Wi-Fi不劃入弱網(wǎng)測(cè)試范疇。
如何進(jìn)行弱網(wǎng)測(cè)試
1、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ò)。
2、具體弱網(wǎng)場(chǎng)景測(cè)試,常見(jiàn)場(chǎng)景包括:地鐵/巴士、電梯、樓梯間、停車場(chǎng)
3、使用虛擬機(jī)模擬網(wǎng)絡(luò)速度,如用樹(shù)莓派搭建的弱網(wǎng)測(cè)試儀
4、使用軟件進(jìn)行網(wǎng)絡(luò)代理,模擬不同的網(wǎng)絡(luò)帶寬、延時(shí)率、丟包率
弱網(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)境模擬,具體參考:Fiddler弱網(wǎng)模擬
方法二:chrome的webview調(diào)試工具弱網(wǎng)模擬
使用chrome的webview調(diào)試工具,缺點(diǎn)是只適用于web頁(yè)面的弱網(wǎng)模擬。
具體步驟:
(1)應(yīng)用打開(kāi)webview調(diào)試功能,具體如下:
if?(Build.VERSION.SDK_INT >=?Build.VERSION_CODES.KITKAT)?{
? ? WebView.setWebContentsDebuggingEnabled(true);
}
(2)手機(jī)鏈接電腦,運(yùn)行APP,進(jìn)入具體H5頁(yè)面;
(3)chrome的DevTools中打開(kāi)Webview:進(jìn)入chrome://inspect/#devices,會(huì)顯示已經(jīng)連接設(shè)備,選中待調(diào)試webview的inspect
network頁(yè)面,No throttling下拉框,可以進(jìn)行網(wǎng)絡(luò)模擬。
方法三:iOS手機(jī)自帶Network Link Conditioner 弱網(wǎng)模擬
iPhone手機(jī)打開(kāi)開(kāi)發(fā)者選項(xiàng),具體參考:參考
設(shè)置-開(kāi)發(fā)者選項(xiàng) > Network Link Conditioner 入口。
系統(tǒng)已經(jīng)內(nèi)置常見(jiàn)網(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)典問(wèn)題分享
場(chǎng)景一:弱網(wǎng)下,頁(yè)面加載過(guò)程,程序閃退。
原因:webview超時(shí)處理未在UI線程。toast、關(guān)閉頁(yè)面等操作需要在UI線程。
場(chǎng)景二:302跳轉(zhuǎn)頁(yè)面,達(dá)到內(nèi)置超時(shí)閥值后,webview自動(dòng)關(guān)閉。
原因:業(yè)務(wù)有頁(yè)面加載超時(shí)自動(dòng)關(guān)閉的邏輯,超時(shí)機(jī)制未考慮302場(chǎng)景。

更多專業(yè)前端知識(shí),請(qǐng)上 【猿2048】www.mk2048.com
總結(jié)
以上是生活随笔為你收集整理的APP网络测试要点和弱网模拟的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: nginx的ngx_http_reali
- 下一篇: 使用stylus