弱網環境存在的問題:
弱網環境下,出現丟包、延時軟件的處理機制,最常見的問題就是丟包。
1、丟包:
在TCP協議中,需要不停的發送請求,來確認連接狀態,一旦發生丟包,就需要重傳。這個時候就需要去檢查產品的處理機制,給予什么提示,如果未響應怎么處理這些。
2、延時:
由于網絡太差,產生了網絡波動,導致數據包在傳輸的時候出現抖動。可能導致請求出現超時的現象。這個時候就需要給予相應的提示,或者是其他的處理方式。
環境準備:
1、安裝Charles、Fiddler
2、連接代理
捕獲網絡信號進行環境部署來分析APP的延遲(加載)、時間、內容
3、工作流程
網絡請求->代理proxy->進行目標操作(修改返回值&延遲&丟包等)->返回給移動端
4、工作原理
通過應用層或者傳輸層的代理服務器,將代理服務器上設置一些模擬惡劣網絡環境的參數,使得通過這些代理服務器的流量都被轉化為惡劣網絡環境下的流量。
使用操作:
1、Charles篇:
可降低寬帶速度、使用率、時延、最大傳輸單元、穩定率等的值,設置流量速率,并添加自定義
2、Fiddler篇
打開Rules->Performance->勾選 Simulate Modem Speeds?
3、iPhone開發者選項
(1)設置中沒有“開發者”選項?
手機連到裝有Xcode的電腦,允許調試后,手機上就會出現“開發者”選項
(2)如何設置自己想要的弱網?
每一項后面點擊進入可修改寬帶和時延等
4、Chrome篇
H5在網頁打開調試控制臺->Network->No throttling,模擬多種網絡的訪問
測試點:
【弱網】
檢查弱網條件下,檢測產品的運行狀態,處理機制,提示信息,包括網絡恢復后的重連等等
1、中間轉態,如:菊花、動效、進度條、百分比進度
? (1、活動頁面,是否使用緩存數據
? (2、頁面加載空白,是否有菊花或者動效
? (3、上傳批量圖片,是否有進度條、百分比進度
? (4、音頻/視頻播放,是否菊花或者動效
? (5、等待的過程中,頁面上依賴數據的控件是否可以操作
2、請求超時,如:響應時長、提示/形式
? (1、響應時長,30s后超時、1分鐘后超時
? (2、超時后,是否判定為斷網狀態
? (3、超時后,UI界面和提示是否友好
? (4、對wifi、2g、3g、4g設置不同的超時時間
3、重連機制,如:點擊頁面、點擊按鈕、重新提交
? (1、判定為斷網或失敗,點擊頁面、點擊按鈕是否重新提交請求
? (2、是否堆積網絡請求,【正向】如:10s左右無返回則會重發請求
? (3、靜默下載,是否保留進度繼續下載
? (4、上傳圖片/視頻、下載圖片/視頻時,采用分段上傳方式,進度到一半卡住是否又從頭開始
4、容錯機制,如:loading超時導致ANR or crash
? (1、loading超時導致ANR or crash
? (2、是否堆積網絡請求,如:1次支付操作,斷網后堆積多個支付請求,恢復網絡后因堆積多個支付請求,是否完成多次支付
【無網】
檢查無網情況下,頁面是否友好、使用緩存數據、重連機制,無網狀態下打開App
無網訪問app
1、無網打開需要登錄且未登錄的app,登錄界面是否正常
2、不限制登錄訪問或已登錄的app,無緩存時是否有預置數據;有緩存時是否顯示緩存數據
使用app過程中斷網
1、請求超時
(1、無網下拉刷新、上拉加載頁面,發請求后,是否有超時處理,提示是否友好
(2、等待上傳或下載的內容,再次操作后,是否超時處理,進度到一半卡住是否又從頭開始
2、默認頁面
(1、訪問頁面,判定為斷網,進入默認無網頁面
(2、無網頁面,返回鍵、刷新重連、診斷功能
3、重連機制
? (1、頁面點擊后是否能重發請求
? (2、下拉刷新后圖片是否還能獲取并展示
? (3、頁面tab欄,點擊切換/左右切換,是否能重發請求
? (4、按鈕/操作,點擊后是否能重發請求
4、緩存機制
? (1、使用緩存數據展示的頁面是否正常展示,如:輪播廣告、icon廣告入口、tab數據等
【網絡切換】
檢查網絡切換,如:wifi切手機流量、wifi換wifi、wifi重連時,頁面是否友好、使用緩存數據、重連機制、容錯機制
1、請求時切換網絡,如果刷新數據、播放音視頻、正在上傳/下載
2、wifi切手機流量,流量已打開
3、wifi換wifi,中間會斷開一會網絡
4、wifi斷開重連,假象還連接wifi,實際沒有流量