1. 程式人生 > >Monkey相關參數 筆記

Monkey相關參數 筆記

狀態 ack sta 健壯性 key RR activit 工具 程序崩潰

Monkey相關參數 筆記

Monkey是Android系統自帶的一個命令行工具,可運行在模擬器裏或實際設備中。

Monkey可以向被測試的應用程序發送偽隨機的用戶事件流(如按鍵、觸屏、手勢等),實現對應用程序進行測試的目的。

Monkey是Android自動化測試的一種手段,在模擬器上運行時,若觸發了點擊、觸摸、手勢等操作,就會產生隨機脈沖信號。

可以通過Monkey用隨機重復的方法對應用程序進行穩定性、健壯性方面的測試。

一、基本參數

1.--help 打印幫助信息

2.-v 指定打印信息的詳細級別,多一個-v,就增加一個信息的詳細級別,級別如下:

默認級別0:-v 只打印啟動信息,測試完成信息和最終結果信息;

級別1:-v-v 打印執行時的信息,如發送事件;

級別2:-v-v-v 打印最詳細信息。

二、約束條件

1.-p (允許執行的包名列表)若此參數指定了一個或幾個包,monkey將只允許指定的系統啟動這些包裏的Activity。

一個-p只能指定一個包,指定多個包需使用多個-p選項。若不指定包,則默認啟動系統裏全部包的Activity。

2.-c 該參數是指定意圖的分類,monkey只會啟動可以處理這些種類的意圖的活動。

若沒設置該選項,則monkey將選擇下列類別中列出的Activity Intent.CATEGORY_LAUNCHER 或Intent.CATEGORY_MONKEY。

若要指定多個類別,需使用多個-c,一個-c只能用於一個類別。

三、事件參數

1.-s (seed)隨機種子。用相同的seed值運行Monkey將生成相同的事件序列。

2.--throttle 在事件之間插入固定延遲,可以減緩Monkey執行速度。單位:毫秒。

3.--pct-touch <percent> 調整觸屏事件的百分比。觸摸事件是個down-up事件,發生在屏幕上某一位置。

4.--pct-motion <percent> 調整滑動事件的百分比。滑動事件是在某一位置按下手指,滑動一段距離再將手指擡起的手勢。

5.--pct-trackball <percent> 調整軌跡球事件的百分比。軌跡球事件由一個或幾個隨機的移動組成,有時還伴有點擊。

6.--pct-nav <percent> 調整基本導航事件的百分比。基本導航事件:模擬方向性設備輸入向上、向下、向左、向右的事件。

7.--pct-majornav <percent> 調整主要導航事件的百分比。這些導航事件通常引發圖形界面中的動作,如:單擊BACK鍵、MENU鍵。

8.--pct-syskeys <percent> 調整系統按鍵事件的百分比。這些按鍵通常被保留,由系統使用,如:Home、Back、撥號、掛斷及音量控制鍵。

9.--pct-anyevent <percent> 調整其他類型事件的百分比。包括所有其他類型的事件,如:普通按鍵、不常用的設備按鈕等。

10.--pct-appswitch <percent> 調整啟動Activity的百分比。在隨機間隔裏,Monkey將執行一個startActivity() 函數最大程度覆蓋包中全部Activity的一種方法。

四、調試參數

1.--dbg-no-events :設置此選項,Monkey將執行初始啟動,進入到一個測試Activity,不會再進一步生成事件。

將它與 –v 、-p、和—throttle等參數一起使用,並讓Monkey運行30秒或更長時間,從而可以觀測到應用程序所調用的包與包之間的切換過程。

2.--hprof :設置此選項,將在Monkey事件序列之前和之後立即生成profiling報告。這將會在data/misc目錄下生成大文件(5Mb左右),所以要小心使用。

3.--ignore-crashes :通常,當應用程序崩潰或發生任何失控異常時,Monkey將停止運行。若設置此選項,Monkey將繼續向系統發送事件,直到計數完成。

4.--ignore-timeouts :應用程序發生任何超時錯誤(如“Application Not Responding”對話框)時,Monkey將停止運行。

設置 --ignore-timeouts 選項,Monkey將繼續向系統發送事件,直到計數完成。

5.--ignore-security-exceptions :當應用程序發生權限錯誤時,Monkey將停止運行。設置此選項,Monkey將繼續向系統發送事件,直到計數完成。

6.--ignore-native-crashes :當應用發生底層C/C++代碼引起的崩潰事件時,Monkey將停止運行。

若設置 --ignore-native-crashes 選項,Monkey將繼續向系統發送事件,直到計數完成。

7.--monitor-native-crashes :監視並報告Android系統中AndroidC/C++引起的崩潰事件。若設置—kill-process-after-error,系統將停止運行。

8.--kill-process-after-error :當Monkey由於一個錯誤而停止時,出錯的應用程序將繼續處於運動狀態。設置該選項,將會通知系統停止發生錯誤的進程。

當Monkey正常執行完畢,它不會關閉所有啟動的應用,設備依然保留Monkey結束時的狀態。

9.--wait-dbg :啟動Monkey後,先中斷其運行,等待調試器和它相連。

五、參數示例

1.-s :種子數相同,則兩次測試所產生的事件序列也相同,便於復現BUG。

第一次輸入:adb shell monkey –v –p com.android.calendar 1000

第二次輸入:adb shell monkey –v –p com.android.calendar 1000

兩次輸入的隨機種子數都是1000,則測試效果相同,產生的模擬用戶操作序列一致,兩次測試產生的隨機序列相同。

“com.android.calendar”為日歷應用的包名(查看包名詳見個人隨筆:adb相關指令)。

2.-p :指定一個或多個包進行測試。

adb shell monkey 1000 向系統隨機發送1000個偽隨機事件序列

adb shell monkey -p com.android.deskclock 1000 向桌面時鐘應用隨機發送1000個偽隨機事件序列

adb shell monkey -p com.android.deskclock -p com.android.calendar 1000

向桌面時鐘和日歷這兩個應用隨機發送1000個偽隨機事件序列

3.--throttle :用於指定隨機事件的延時。

adb shell monkey -p com.android.deskclock --throttle 2000 1000

向桌面時鐘應用發送1000次隨機事件序列,序列執行的時間間隔為2000毫秒,即2秒。

4.--pct-touch <percent> :設置觸屏事件的百分比。

adb shell monkey --pct-touch 60 -p com.android.deskclock 1000

向桌面時鐘應用發送1000個偽隨機事件序列,其中觸屏事件占60%。

5.--pct-motion <percent> :設置滑動事件的百分比。

adb shell monkey --pct-motion 60 -p com.android.deskclock 1000

向桌面時鐘應用發送1000個偽隨機事件序列,其中滑動事件占60%。

6.--pct-trackball <percent> :設置軌跡球事件的百分比。

adb shell monkey --pct-trackball 60 -p com.android.deskclock 1000

向桌面時鐘應用發送1000個偽隨機事件序列,其中軌跡球事件占60%。

7.--pct-nav <percent> :調整基本導航事件的百分比。

adb shell monkey --pct-nav 60 -p com.android.deskclock 1000

向桌面時鐘應用發送1000個偽隨機事件序列,其中基本導航事件占60%。

8.--pct-majornav <percent> :調整主要導航事件的百分比。

adb shell monkey --pct-majornav 60 -p com.android.deskclock 1000

向桌面時鐘應用發送1000個偽隨機事件序列,其中主要導航事件占60%。

9.--pct-syskeys <percent> :調整系統按鍵事件的百分比。

adb shell monkey --pct-syskeys 60 -p com.android.deskclock 1000

向桌面時鐘應用發送1000個偽隨機事件序列,其中系統按鍵事件占60%。

10.--pct-anyevent <percent> :調整其他類型事件的百分比。

adb shell monkey --pct-anyevent 60 -p com.android.deskclock 1000

向桌面時鐘應用發送1000個偽隨機事件序列,其中其他類型事件占60%。

11.--pct-appswitch <percent> :調整啟動Activity的百分比。

adb shell monkey --pct-appswitch 60 -p com.android.deskclock 1000

向桌面時鐘應用發送1000個偽隨機事件序列,其中主要覆蓋包中60%的活動。

12.--ignore-crashes :應用程序崩潰或發生任何失控異常時,Monkey繼續向系統發送事件,直到計數完成。

adb shell monkey -p com.android.deskclock –ignore-crashes 1000

向桌面時鐘應用發送1000次隨機事件,無論該應用程序是否崩潰,此命令都會執行完1000次隨機事件的發送。

13.--ignore-timeouts :應用程序發生任何超時錯誤,Monkey將繼續向系統發送事件,直到計數完成。

adb shell monkey -p com.android.deskclock –ignore-timeouts 1000

向桌面時鐘應用發送1000次隨機事件,測試過程若出現ANR錯誤,此命令仍會發送事件至1000次為止。

14.--ignore-security-exceptions :當應用程序發生權限錯誤,Monkey將繼續向系統發送事件,直到計數完成。

adb shell monkey -p com.android.deskclock –ignore-security-exceptions 1000

向桌面時鐘應用發送1000次隨機事件,測試過程若出現證書許可、網絡許可錯誤,此命令仍會發送事件至1000次為止。

六、終止Monkey測試

1.執行adb reboot 命令重啟設備

2.在終端執行命令:

1)adb shell

2)ps| grep monkey (查看手機後臺monkey進程,第一串數字就是後臺運行程序的id數)

3)kill pid id (運行kill命令殺死進程)

Monkey相關參數 筆記