前言如果你做Android開發,還沒有使用過Monkey進行測試,那麼今天看到這篇文章,希望能解決你Android測試中的一些問題。起碼能幫你省點測試的時間並且發現更多的問題。
Monkey簡介Monkey是一個可運行在模擬器和實際裝置中的Android命令列自動化測試載入器,它可以類比偽隨機的使用者事件流,例如點擊、觸摸、手勢等。你可以使用Monkey對正在開發的程式進行壓力測試。
Monkey的特徵:測試的對象為程式包名,通過-p參數指定。Monkey測試使用的事件流、資料流是隨機的,不能進行自訂。
Monkey的使用Monkey是Android系統內建,有Java語言編寫的自動化測試載入器,在Android檔案系統中的存放路徑為:/system/framework/monkey.jar
monkey.jar程式是由一個名為"monkey"的Shell指令碼來啟動執行,shell指令碼在Android檔案系統的存放路徑為:/system/bin/monkey
基本文法
adb shell monkey [option]
參數
[Option] -p
用於約束限制,用此參數指定一個包或多個包(Package,即APP)。指定之後,Monkey只允許系統啟動指定的APP,如果不指定,Monkey將允許系統啟動所有的APP
[Option] -v用於指定反饋資訊層級(資訊層級就是日誌的詳細程度),總共分為三個層級,分別對於參數如下所示:
記錄層級:Level 0
樣本:adb shell monkey -p com.example.list -v 100
說明:預設值,僅提供啟動提示、測試完成和最終結果等少量資訊
記錄層級:Level 1
樣本:adb shell monkey -p com.example.list -v -v 100
說明:提供較為詳細的日誌資訊,包括髮送到Activity的事件資訊
記錄層級:Level 2
樣本:adb shell monkey -p com.example.list -v -v -v 100
說明:提供最為詳細的日誌資訊,包括測試中選擇和未選中的Activity資訊
[option] --kill-process-after-error
說明:用於指定當前應用程式發生錯誤時,是否停止其運行。如果指定此參數,當使用者應用程式發生錯誤時,應用程式停止並且保持在當前的狀態
[option] --throttle
說明:用於指定Monkey操作事件的間隔時間,單位是毫秒
說明:指定隨機事件的次數
Example記錄一下我經常使用的monkey命令,就是組合使用了以上參數:
adb shell monkey -p com.example.listview -v -v -v --kill-process-after-error --throttle 500 500000 > /mnt/sdcard/monkey.log 2 >&1 &