APP弱網測試方法

實際生活中,電梯里 or 地鐵里 模擬用戶體驗測試是個不錯的選擇

【實際操作】具有代理服務器功能的網絡流量分析軟件

一、Charles

通過抓包工具Charles(如何配置Charles),設置延遲,進行模擬不同的網絡情況

配置好Charles后,正常聯網,選擇throttle settings 設置弱網環境

Throttle Settings

Throttle preset 選擇弱網環境目標:2G或者3G

ps:也可在在Bandwidth(帶寬)中選擇上傳、下載數值

二、Flidder

Fiddler是一個http協議調試代理工具,跨瀏覽器、跨系統、跨平臺的免費Web Debug代理服務器,它能夠記錄并檢查所有你的電腦和互聯網之間的http通訊,設置斷點,查看所有的“進出”Fiddler的數據(指cookie,html,js,css等文件,這些都可以讓你胡亂修改的意思)。Fiddler 是用C#寫出來的,它包含一個簡單卻功能強大的基于JScript .NET 事件腳本子系統,目前無法再mac OS上適用,可以在win上使用。

Fiddler界面說明

1.抓包

PC端設置網絡—》手機端使用PC端網絡代理

1)查找本機PC端網絡地址—》fidder options選擇connections 設置端口信息&勾選allow remote computers to connect

2)手機端在設置—》選擇手動代理,并輸入PC端網絡代理

選擇Fiddler Options

勾選Allow remote computers to connect

3)網絡連接成功,則在移動端使用目標URL或者使用應用,得到請求和返回信息

4)設置斷點

A?fiddler菜單欄->rules->automatic?Breakpoints->選擇斷點方式,這種方式下設定的斷點會對之后的所有HTTP請求有效。

有兩個斷點位置:

a) before?response。也就是發送請求之后,但是Fiddler代理中轉之前,這時可以修改請求的數據。

b.)after?response。也就是服務器響應之后,但是在Fiddler將響應中轉給客戶端之前。這時可以修改響應的結果

B ?設置響應后斷點(after?response?breakpoint),可以通過命令行設置:bpafter?localhost

5)修改返回值

觀察inspector,頁面內容出現變化(說明攔截成功)

切換到textView子面板,選擇需要修改的部分,然后點擊 “run to complete“,便可回送修改后的響應

ps:終止斷點的方式有:

1> 在rules->auto?breakpoint中disabled斷點即可。

2> 在inspector界面點擊“run?complete“即會終止本次HTTP請求的斷點。

3>輸入Go 命令,也會使得當前的請求跳過斷點

2.模擬弱網

1)Rules—》customer rules(或者ctrl+r)

選擇Customize Rules

2)Ctrl+F組合鍵調出搜索對話框,鍵入m_Simulate進行搜索,找到如下代碼框

upload代表 上傳速度

download代表下載速度

完成設置—》保存—》點擊Performance-->點擊Simulate Modem Speeds,完成弱網模擬功能的打開

m_SimulateModem

完成弱網工具環境搭建,來梳理下弱網測試場景和測試點。

一、【弱網測試場景】

既然APP異常測試中,弱網測試屬于必須考慮的測試項,哪些業務適合驗證,哪些不需要驗證呢?以下是個人淺見,歡迎拋磚引玉:

1.結合APP本身屬性

比如社交類APP(聊天、搶紅包)對網絡環境依賴性大且用戶關注度高,弱網環境下需要重點關注。

結合互聯網金融APP,申購流程中創建訂單后是否支付成功,用戶關注度最高(涉及扣費)。例如 弱網環境,創建訂單失敗,用戶關注是否被扣費;創建訂單成功后支付失敗,再次支付是否重復扣費等

2.使用頻率&易遇到弱網的場景

比如微博APP【觀看小視頻】,用戶在碎片時間極易【觀看小視頻】(APP用戶喜歡使用碎片化時間進行娛樂操作),同時增加了【刷微博】(微博小視頻和刷微博 操作場景重合)此處就需要加強弱網環境測試

比如金融APP,用戶在碎片化時間使用金融APP,領取獎品、查看理財類新聞、查看收益

好的例子:據我所知,微信的升級就會監聽用戶是否插著電,連著wifi,一旦監聽到了,就馬上告訴你,現場可以升級

二、【弱網環境測試點總結】

1.場景:弱網環境下某個操作響應時間

原因:APP用戶對等待時間容忍度低,若弱網環境loading超過5s,用戶很容易kill應用后再次進入應用

【測試點】性能測試中,加入弱網環境測試點,檢測各個場景網絡請求的 API 消耗時間(此處可以放入性能測試中,做為衡量APP性能好壞的指標)

2.場景:弱網環境下直至超時,UI界面友好度&APP是否穩定

原因:容錯機制主要是考慮弱網情況下帶來的不穩定,常見的問題是:loading超時導致ANR or crash

【測試點】弱網環境直至超時,判定為斷網狀態,UI界面和提示,友好且理解無歧義

3.場景:斷網后環境下,是否自動重發請求

原因:不同模塊,開發對請求處理不同。測試前可了解,代碼是否支持自動重復請求,自動重發請求的頻率是什么?

【測試點】斷網后恢復網絡,是否堆積網絡請求(目前來說 理財模塊 當10s左右無返回 則會重發請求),此時請求和返回正常情況下,是否出現異常情況。比如1次支付操作,斷網后堆積多個支付請求,恢復網絡后因堆積多個支付請求,是否完成多次支付

ps:斷網后恢復網絡,考慮APP進行操作目的是否對傷害用戶體驗,通過哪種手段 可以達到操作目的同時用戶體驗無感或者低傷害

比如,微信希望在線升級某些內容,會自動監聽用戶是否插著電 or 連著wifi,一旦監聽符合上述場景,APP自動升級:

1)插電場景 確保升級過程中,耗電不會導致手機低電量甚至沒電

2)wifi場景,確保升級過程中,流量消耗不會使用用戶話費中流量包,不會導致因消耗話費流量傷害用戶體驗

4.網絡請求中,kill進程 (導致APP登錄態掉線)

登錄同一個賬號成功,應該不繼續相同網絡請求(要和RD確認,程序實際實現)

登錄不同賬號成功,應該不繼續相同網絡請求(要和RD確認,程序實際實現)

三、【常見弱網問題和原因分析】

1.場景:上傳大圖或者多圖時,在弱網絡環境下出現進度條走到一半卡住然后又從頭開始

原因:采用分段上傳方式,直至請求超時,分段傳輸沒有結束,代碼邏輯不對,導致每次重試都重頭上傳,一直循環

2.場景:在弱網絡環境下容易出現登錄不上或者登陸后立即掉線

原因:登錄沒有緩沖機制,而請求超時時間的設置沒有區分同網絡情況

解決方案:建議開發針對wifi、2g、3g、4g設置不同的超時時間

3.場景:弱網絡環境下,請求的數據返回時間較長,等待的過程中,如果頁面上的相關控件仍然可以操作,則容易出現異?,F(閃退現象、觸發底部時獲得原頁面請求數據)

原因:依賴數據的控件操作,在數據返回前沒有做兼容處理

4.場景:搜索時輸入關鍵字會連續發請求,停下時,顯示最終的關鍵字搜索結果,但很快又會被前面的關鍵字搜索結果覆蓋了;

原因:中間的請求返回較慢,顯示了最終的結果后,之前的請求返回的數據應不做處理。

作者:siyu8023

鏈接:http://www.lxweimin.com/p/06be11140413

來源:簡書

著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 【背景】 弱網測試,屬于健壯性測試的內容。隨著國內移動端迅猛發展,大大增加用戶碎片化使用移動端的概率。想象一下,用...
    siyu8023閱讀 23,573評論 3 33
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,132評論 25 708
  • 最近在搞一個智能穿戴項目。手環手表等智能穿戴項目中最核心的功能是運動計步功能。 計步功能的業務邏輯是主要流程是通過...
    Dodol閱讀 3,696評論 1 22
  • 弱網測試作為健壯性測試的重要部分,對于移動端測試來說必不可少。這是因為目前移動端產品的使用用戶所處的網絡并非完全的...
    隋胖胖LoveFat閱讀 20,090評論 7 58
  • 1、 人員招聘和篩選 新團隊的建立過程中首要遇到的問題就是人員招聘與篩選的問題。如何組建團隊迅速招到合適的人,首先...
    iceinto閱讀 933評論 0 1