1. 程式人生 > >Android Monkey使用

Android Monkey使用

Monkey 是什麼?

Android SDK自帶的壓力測試工具,也是一個命令列工具。它向系統傳送偽隨機的使用者事件流(如按鍵輸入,觸控式螢幕輸入,手勢輸入等),實現對正在開發的應用程式進行壓力測試。

 

(1) Monkey程式由Android系統自帶,使用Java詫言寫成,在Android檔案系統中的存放路徑是: /system/framework/monkey.jar;   
(2) Monkey.jar程式是由一個名為“monkey”的Shell指令碼來啟動執行,shell指令碼在Android檔案系統中 的存放路徑是:/system/bin/monkey;  
(3)Monkey 命令啟動方式:    
          a)可以通過PC機CMD視窗中執行: adb shell monkey {+命令引數}來進行Monkey測試          

 

     b)在PC上adb shell 進入Android系統,通過執行 monkey {+命令引數} 來進行Monkey 測試          

 

          c )  在Android機或者模擬器上直接執行monkey 命令,可以在Android機上安裝Android終端模擬器  

 

特點:

測試事件和資料都是隨機的,不能自定義。

Monkey 命令詳解

1、標準的monkey 命令,開啟執行sdk目錄下的 adb shell

monkey [option] <eventcount> 
例如: adb shell monkey
-v 500 //產生500 隨機事件,作用在系統中所有activity(其實也不是所有的activity,而是包含 Intent.CATEGORY_LAUNCHER 或Intent.CATEGORY_MONKEY 的activity)。

2、基礎引數

-p <packageName ...>

用此引數指定一個或者多個包名,指定包之後,monkey將只啟動對應的應用,如果未指定包名,系統將允許monkey啟動所有應用。

adb shell monkey -p com.android.example 1000  // 指定應用 com.android.example 進行1000次模擬事件測試

adb shell monkey -p com.android.example -p com.android.example2 1000   //指定多個應用

-v  

用於指定測試反饋資訊級別(資訊級別就是日誌的詳細程度),總共分3個級別,分別對應一下引數

 adb shell monkey -p com.android.example -v 100 //僅提供啟動、測試完成和最終結果等少量日誌。

adb shell monkey -p com.android.example -v -v 100 //提供較詳細的日誌,包括每個傳送到Activity 的事件資訊

adb shell monkey -p com.android.example -v -v -v 100 // 包括各個activity的資訊

-s(隨機數種子)

用於指定偽隨機數生成器的seed 值,如果seed 相同,則兩次Monkey測試所產生的事件序列也相同的,示例:

adb shell monkey -p com.android.example -s 10

--throttle <毫秒>

用於指定使用者操作事件延遲時間。預設不設定,則儘可能的執行。

adb shell monkey -p com.android.example --throttle 3000 10

-c <main-category>

如果以這種方式指定一個或多個類別,則Monkey將  僅  允許系統訪問使用指定類別之一列出的活動。如果您未指定任何類別,Monkey將選擇使用Intent.CATEGORY_LAUNCHER或Intent.CATEGORY_MONKEY類別列出的活動。要指定多個類別,請多次使用-c選項 - 每個類別一個-c選項。

3、事件操作引數

--pct-touch <percent>

adb shell monkey -p com.android.example --pct-touch 50  1000 >d:\monkeyLog.txt

用於調整觸控事件佔的百分比。

--pct-motion <percent>

調整運動事件的百分比 。

--pct trackball <percent> 

調整軌跡球事件佔的百分比

--pct-nav <percent>

調整“基本”導航事件的百分比。(導航事件由上/下/左/右組成,作為來自方向輸入裝置的輸入。)

--pct-majornav <percent> 

調整“主要”導航事件的百分比。(這些導航事件通常會導致UI中的操作,例如5向鍵盤中的中心按鈕,後退鍵或選單鍵。)

--pct-appswitch <percent> 

調整活動啟動的百分比。在隨機的時間間隔內,Monkey將發出一個startActivity()呼叫,作為最大化包中所有活動的覆蓋範圍的方法。

 

 

--pct-anyevent <percent>

調整其他型別事件的百分比。這是所有其他型別事件的全部功能,例如按鍵,裝置上其他較少使用的按鈕等等。

4、除錯引數

--hprof 

如果設定,此選項將在Monkey事件序列之前和之後立即生成分析報告。這將在data / misc中生成大(~5Mb)檔案,因此請小心使用

--ignore-crashes

通常,當應用程式崩潰或遇到任何型別的未處理異常時,Monkey將停止。如果指定此選項,Monkey將繼續向系統傳送事件,直到計數完成。

--ignore-timeouts

通常,當應用程式遇到任何型別的超時錯誤(例如“應用程式無響應”對話方塊)時,Monkey將停止。如果指定此選項,Monkey將繼續向系統傳送事件,直到計數完成。

 

--ignore-security-exceptions

通常,當應用程式遇到任何型別的許可權錯誤時,Monkey將停止,例如,如果它嘗試啟動需要某些許可權的活動。如果指定此選項,Monkey將繼續向系統傳送事件,直到計數完成。

--kill-process-after-error

通常,當Monkey因錯誤而停止時,失敗的應用程式將保持執行狀態。設定此選項後,它將通知系統停止發生錯誤的程序。注意,在正常(成功)完成的情況下,啟動的程序不會停止,並且裝置在最終事件之後只是處於最後狀態。

 

--monitor-native-crashes

觀看和報告Android系統本機程式碼中發生的崩潰。如果設定了--kill-process-after-error,系統將停止