天天看點

APP網絡測試要點和弱網模拟

目前APP網絡環境比較複雜,網絡制式有2G、3G、4G網絡,還有越來越多的公共Wi-Fi。不同的網絡環境和網絡制式的差異,都會對使用者使用app造成一定影響。另外,目前app使用場景多變,如進地鐵、上公交、進電梯等,使得弱網測試顯得尤為重要。如果app沒有對各種網絡異常進行相容處理,那麼使用者可能在日常生活中遇到APP閃退、ANR、資料丢失等問題。是以,app網絡測試,特别是弱網測試尤為重要。本文梳理了app網絡測試要點和弱網測試常用模拟方法,讓大家對網絡測試有一個全面的認識。

APP網絡測試要點

APP網絡測試要點和弱網模拟

1、各個網絡下功能測試

  • 不同網絡下,檢查基本功能點
  • 營運商移動、聯通、電信接入點測試(需要使用實際SIM卡)
  • 若有智能DNS功能,還需要關注營運商判斷/歸類
  • 高延時、高丢包、無網、假熱點也可歸入弱網測試範疇

2、網絡切換測試

部分APP有智能DNS功能,網絡切換涉及DNS切換。

網絡切換檢測機制:Android可以監聽系統廣播

3、弱網測試

使用者體驗和異常處理是各個網絡場景都需要關注的,隻是弱網場景下,需要重點關注。

弱網測試模拟

什麼樣的網絡屬于弱網

低于2G速率的時候都屬于弱網,3G也可劃分為弱網,一般Wi-Fi不劃入弱網測試範疇。

如何進行弱網測試

1、SIM卡的網絡切換

手機-設定-移動網絡設定-網絡類型選擇

3G、4G卡都可以設定關閉3G/4G,隻走2G網絡。

2、具體弱網場景測試,常見場景包括:地鐵/巴士、電梯、樓梯間、停車場

3、使用虛拟機模拟網絡速度,如用樹莓派搭建的弱網測試儀

4、使用軟體進行網絡代理,模拟不同的網絡帶寬、延時率、丢包率

弱網模拟常用工具

方法一:charles弱網模拟

APP網絡測試要點和弱網模拟
APP網絡測試要點和弱網模拟

配置參數解析:

bandwidth —— 帶寬,即上行、下行資料傳輸速度

utilisation —— 帶寬可用率,大部分modern是100%

round-trip latency —— 第一個請求的時延,機關是ms。

MTU —— 最大傳輸單元,即TCP包的最大size,可以更真實模拟TCP層,每次傳輸的分包情況。

Releability —— 指連接配接的可靠性。這裡指的是10kb的可靠率。用于模拟網絡不穩定。

Stability —— 連接配接穩定性,也會影響帶寬可用性。用于模拟移動網絡,移動網絡連接配接一般不可靠。

具體網絡設定參考:

APP網絡測試要點和弱網模拟
APP網絡測試要點和弱網模拟
APP網絡測試要點和弱網模拟

Fiddler也可以進行弱網環境模拟,具體參考:Fiddler弱網模拟

方法二:chrome的webview調試工具弱網模拟

使用chrome的webview調試工具,缺點是隻适用于web頁面的弱網模拟。

具體步驟:

(1)應用打開webview調試功能,具體如下:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {

    WebView.setWebContentsDebuggingEnabled(true);

}

(2)手機連結電腦,運作APP,進入具體H5頁面;

(3)chrome的DevTools中打開Webview:進入chrome://inspect/#devices,會顯示已經連接配接裝置,選中待調試webview的inspect

network頁面,No throttling下拉框,可以進行網絡模拟。

APP網絡測試要點和弱網模拟

方法三: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(蜂窩網)

具體步驟參考:

APP網絡測試要點和弱網模拟
APP網絡測試要點和弱網模拟

網絡測試經典問題分享

場景一:弱網下,頁面加載過程,程式閃退。

原因:webview逾時處理未在UI線程。toast、關閉頁面等操作需要在UI線程。

場景二:302跳轉頁面,達到内置逾時閥值後,webview自動關閉。

原因:業務有頁面加載逾時自動關閉的邏輯,逾時機制未考慮302場景。

作者:AmyZYX

出處:http://www.cnblogs.com/amyzhu/

本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利。