Monkey 測試方法和要求

孤獨先生發表於2020-09-20

Monkey 自動化測試方法和要求

 

一、Monkey測試簡介

Monkey 就是猴子的意思,所以Monkey測試形象化的意思就是:像一個猴子一樣的胡亂的、隨機的對產品進行操作。 所以Monkey測試的一個重要特點就是隨機性,就是對手機系統進行大量隨機的操作,從而發現手機在穩定性上面的問題。

 

 

二、Monkey測試方法

 

   前提:1.手機支援root,(或者說用eng版本的機器)

         2. 手機處於無鎖狀態,在主選單應用頁面,手機保持常亮,休眠時間改成30 分鐘。

         3. 如果用不了 monkeyrunner, 就刪除環境變數 path , 重新新增 sdk 路徑。

 

 

1.        測試指令:

Adb shell monkey -p < 模組> -v -v -s 100 10000 > d:/a.txt

 

      -p < 模組 > 就是應用程式包,如:簡訊模組,com.android.mms; -v 10000 表示有10000 個偽隨機事件,或者說測試內容。

     

       當測試遇到異常,無響應、停止執行、重啟、卡死、自動關機,monkey會自動停止執行。

 

      Ps: 針對記憶體不足的手機,由於比較卡頓,可以增加延遲,減緩測試速度 ,避免因卡頓誤操作導致的報錯, --throttle 150 如:

Adb shell monkey -p < 模組> -v -v -s 100 --throttle 150 10000 > d:/a.txt

 

     

2.        測試要求:

1)          測試之前開啟MTKlog—>logcat. ( 高通平臺就直接adb logcat > d:/log1.txt 抓取log)

2)          每個模組要求至少測 30 次,並且同時保留每次測試log:a1.txt a2.txt a3.txt…….

3)          遇到anr 、卡死、重啟、自動關機等異常。將Mtklog 和當次遇到異常產生的a.txt 一起給到研發

4)          每次測試除錯版本時,專門安排一個人執行monkey 自動化測試,要求每個模組測試10 次,每次設定隨機事件10000 次。release version ,要求跑25 次,不會出現1 nullPointException Monkey 作為一個必測內容。

 

 

3.        測試模組:(應用包)

 

應用包在/data/data 裡面。

輸入指令:

Adb shell

Cd /data/data

ls –l

 

PS :包括第三方的都可以執行monkey 測試。同時有些應用包無法執行monkey ,請一個個驗證。重點關注主要應用包。

 

擴充套件補充:

1.        多個應用包執行monkey

 

同時有興趣的人可以將monkey 延伸一下,如:一次跑多個模組應用,如:

Adb shell monkey –p < 模組 > –p < 模組 > -v –v –s 100 --throttle 150 10000 > d:/a.txt

 

2.        人不在的時候,長時間執行monkey 壓力測試,當出現報錯、崩潰、超時等異常時,依然執行monkey 測試。

 

adb shell monkey –p < 模組 > -s 500 --ignore-crashes --ignore-timeouts --monitor-native-crashes -v -v 10000 > d:/a.txt

 

解釋: 產生時間序列的種子值: 500 忽略程式崩潰 忽略超時 監視本地程式崩潰 詳細資訊級別為 2 產生 10000 個事件

 

--dbg-no-events :初始化啟動的 activity ,但是不產生任何事件。
--hprof
:指定該項後在事件序列傳送前後會立即生成分析報告   —— 一般建議指定該項。
--ignore-crashes :忽略崩潰
--ignore-timeouts :忽略超時
--ignore-security-exceptions
:忽略安全異常
--kill-process-after-error
:發生錯誤後直接殺掉程式
--monitor-native-crashes :跟蹤本地方法的崩潰問題
--wait-dbg
:知道連線了偵錯程式才執行 monkey 測試。

 

 

 

 

 

 

 

 

 

 

 

 

補充部分:

 

例如:

目前K553 安卓7.0 能執行Monkey 的模組:(系統不同會有差異,後續 每個專案啟動後VPM 找出對應能測項,發給大家。)

com.android.fmradio       收音機

com.mediatek.camera    相機

com.android.browser      瀏覽器

com.android.mms   資訊

com.android.stk       SIM 卡應用

com.android.launcher3   UI 介面

com.android.calendar     日曆

com.android.dialer  電話(撥號盤)

com.android.gallery3d     相簿

com.android.settings       設定

com.android.calculator2 計算機

com.android.email  電子郵件

com.android.music  音樂

com.android.deskclock    時鐘

com.android.soundrecorder   錄音機

com.android.quicksearchbox  搜尋

com.android.vending     play 商店

com.android.documentsui       下載

com.mediatek.filemanager      檔案管理

com.mediatek.datatransfer    備份與還原

  

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69936314/viewspace-2722604/,如需轉載,請註明出處,否則將追究法律責任。

相關文章