Monkey 參數
參數分類
- 常規類參數
- 事件類參數
- 約束類參數
- 調試類參數
常規類參數
常規類參數包括幫助參數和日誌信息參數。幫助參數用於輸出Monkey命令使用指導;日誌信息參數將日誌分爲三個級別,級別越高,日誌的信息越詳細。
1.幫助類參數
monkey -h
2.日誌級別
$ adb shell monkey -v <event-count>
-v:打印出日誌信息,每個-v將增加反饋信息的級別。-v越多日誌信息越詳細,不過目前最多支持3個-v,即:
事件類參數
事件類參數的作用是對隨機事件進行調控,從而使其遵照設定運行,如設置各種事件的百分比、設置事件生成所使用的種子值等。頻率參數主要限制事件執行的時間間隔。
1.執行指定腳本
$ adb shell monkey -f <scriptfile> <event-count>
eg:
$ adb shell monkey -f /mnt/sdcard/test1
2.僞隨機數生成種子值
使用 -s命令可以重複執行之前的僞隨機操作。本身每次執行僞隨機事件操作也會默認生成一個seed值,該seed值是一個隨機值
$ adb shell monkey -s <seed>(隨機值) <event-count>
eg:
設置一個種子值爲666的100個僞隨機事件
$ adb shell monkey -s 666 100
3.設置間隔 如果你希望在每一個指令之間加上固定的間隔時間,可以用--throttle(注意,前面是--)命令。
$ adb shell monkey --throttle <milliseconds>
eg:
設置5個僞隨機事件,每個事件間隔是3秒
$ adb shell monkey --throttle 3000 5
詳細一些的:
adb shell monkey -v -v --throttle 3000 5
--throttle:後面接時間,單位爲ms(<milliseconds>),表示事件之間的固定延遲(即執行每一個指令間隔的時間),若不接該選項,monkey將不會延遲。
4.調整觸摸事件百分比
如果你希望調整觸摸事件的百分比,記住使用--pct-touch。
$ adb shell monkey --pct-touch
eg:
隨機執行200個事件,觸摸比率爲100%
$ adb shell monkey -v -v --pct-touch 100 200
<percent>--pct-touch:後面接觸摸事件百分比
注意:觸摸事件不單單是按鍵,它泛指發生在某一位置的一個down-up事件。
5.調整手勢事件百分比
$ adb shell monkey --pct-motion
eg:
隨機執行200個事件,手勢百分比爲100%
$ adb shell monkey -v -v --pct-motion 100 200
如果想兩個時間都設置,可以使用如下操作:其他的類似
執行200個隨機事件,觸摸佔40% 手勢佔20%
adb shell monkey -v -v -pct-touch 40 -pct-motion 20 200
6.調整應用啓動事件的百分比
如果你希望調整應用啓動事件的百分比,記住使用--pct-appswitch。
$ adb shell monkey --pct-appswtich <percent>
例子:
隨機執行200個事件,啓動app事件佔40%
adb shell monkey -v -v --pct-appswitch 40 200
--pct-appswitch:後面接應用啓動事件百分比。
應用啓動事件(即activity launches)俗稱打開應用,通過調用startActivity()方法最大限度地開啓該package下的所有應用。
7.調整屏幕旋轉事件百分比
$ adb shell monkey --pct-rotation <percent>
--pct-rotation 後面接屏幕旋轉事件的比例值。
8.其他參數
約束類參數
1.包約束
-p:後面接一個或多個包名(<allowed-package-name>),如果應用需要訪問其他包裏的Activity,那相關的包也需要在此同時指定。如果不指定任何包,monkey將允許系統啓動全部包裏的Activity。
$ adb shell monkey -p <allowed-package-name> <event-count>
eg:
啓動考研幫包裏面的activity 執行500個隨機事件
$ adb shell monkey -v -p com.tal.kaoyan 500
同時啓動考研幫和微信裏面的activity,執行500個隨機事件
$ adb shell monkey -v -p com.tal.kaoyan -p com.tencent.mm 500
2.activity類約束
如果你希望將monkey限制在一個或幾個類別中,使用如下命令:
adb shell monkey -c <main-category> <event-count>
以下命令表示運行Intent.CATEGORY_LAUNCHER類別的Activity併發送1000個隨機事件。
$ adb shell monkey -c Intent.CATEGORY_LAUNCHER 1000
調試類參數
1.應用程序崩潰後繼續發送事件
如果你希望monkey在應用程序崩潰後繼續發送事件,則需要用到--ignore-crashes命令
$ adb shell monkey --ignore-crashes <event-count>
在設置此選項後,當應用程序崩潰或發生失控異常時,monkey將繼續運行直到計數完成。如果不設置此選項,monkey遇到上述崩潰或異常將停止運行。
2.超時錯誤繼續發送事件
如果你希望monkey在任何超時錯誤發生後繼續發送事件,則需要用到--ignore-timeouts命令。
$ adb shell monkey --ignore-timeouts
<event-count>--ignore-timeouts:在設置此選項後,當應用程序發生任何超時錯誤(如ANR,即Application Not Responding)時,monkey將繼續運行直到計數完成。如果不設置此選項,monkey遇到此類超時對話框將停止運行。
3.應用程序權限錯誤發生後繼續發送事件
如果你希望monkey在應用程序權限錯誤發生後繼續發送事件,則需要用到--ignore-security-exceptions命令。
$ adb shell monkey --ignore-security-exceptions
<event-count>--ignore-security-exceptions:在設置此選項後,當應用程序發生任何權限錯誤(如啓動一個需要某些權限的Activity)時,monkey將繼續運行直到計數完成。如果不設置此選項,monkey遇到此類權限錯誤將停止運行。
4.其他