1. 程式人生 > >Android APP弱網測試問題和解決分析

Android APP弱網測試問題和解決分析

最近做了一次移動APP的弱網和中斷測試,接下來分享一下遇到的一些問題:

1、 現象:使用者登入應用時下載初始化資料,下載過程中因網速太慢點選取消並重新登入,資料初始化完成後出現重複,造成資料不一致。

  原因:資料下載過程中、下載失敗後,未進行資料回滾,中止後重新下載,出現數據重複

  解決方案:通過事務處理資料下載邏輯,下載失敗後,應用本地資料庫進行資料回滾。

2、 現象:使用者點選資料上傳,資料上傳過程中網路弱且不穩定,基於聯網狀態自動觸發資料上傳,導致出現數據重複寫入,形成髒資料

  原因:資料上傳過程中,由於失敗重傳機制,會出現連續兩次寫操作,並且未做唯一識別處理

  解決方案:根據資料特性,對可能造成髒資料的地方,通過關鍵欄位,例如建立時間,key-value值等生成hash鍵,標記記錄唯一性,即資料寫入時,檢查hash鍵是否存在,如果已經存在,當前重複資料丟棄。

3、 現象:在弱網環境下,使用者輸入使用者名稱和密碼點選登入,應用連結超時返回使用者名稱和密碼錯誤提示。

  原因:在弱網環境下的連線超時後,按照強網業務邏輯處理,導致返回超時異常。

  解決方案: 弱網連線超時後,檢查應用本地資料庫是否有使用者登入資訊,若存在,獲取應用本地使用者資訊進行登入。

4、 現象:在弱網環境下,使用者輸入使用者名稱和密碼後點擊登入,登入過程中應用崩潰並且閃退。

  原因:弱網環境下資料下載超時,載入資料嚴重依賴於後來的非同步載入。資料還沒來得及返回,應用跳轉到下個activity,導致崩潰。

  解決方案:健壯資料載入流程,通過標記後臺資料下載狀態載入介面,依賴資料下載完成後,再進行頁面跳轉。

5、 現象:弱網路環境下,使用者請求頁面響應時間較長,等待的過程中,頁面上的部分控制元件仍然可以操作,當用戶點選控制元件時,出現應用閃退現象;

  原因:沒有對資料載入流程進行判斷,直接暴露控制元件可控,當出現依賴資料的控制元件操作時,沒有在資料返回前做相容處理。

  解決方案:在資料載入過程中,設定頁面對外暴露的控制元件為“不可操作”,當資料載入完再釋放。

6、 現象:在弱網環境下,使用者第一次輸入搜尋關鍵字沒有得到響應後,再次輸入全新關鍵字併發送請求,等待搜尋結果返回後,當前結果頁被之前的關鍵字搜尋結果重新整理覆蓋

  原因:中間的請求返回較慢,顯示最終的結果後,之前請求返回的資料應不做處理。

  解決方案:對非同步請求未完成的任務進行cancel.

所以綜上所述,對於移動APP測試,從功能、效能、穩定、異常處理等幾個維度來歸納場景特性,弱網測試主要集中在如下場景:2G/3G/4G wifi-行動網路切換等。