Android Monkey Test

作爲一個Android開發者,熟悉的自動化測試是十分必要的。此文主要介紹Android平臺下的Monkey測試。

Monkey測試介紹

Monkey測試是Android平臺自動化測試的一種手段,通過Monkey程序模擬用戶觸摸屏幕、滑動Trackball、按鍵等操作來對設備上的程序進行壓力測試,檢測程序多久的時間會發生異常。

Monkey測試特點

Monkey測試的特點主要有以下幾點:

  • 可對MonkeyTest的對象,事件數量,類型,頻率等進行設置。
  • Monky測試使用的事件流數據流是隨機的,不能進行自定義。
  • 測試的對象僅爲應用程序包,有一定的侷限性。

Monkey命令

常規



1
-help

作用:列出簡單的用法
例:adb shell monkey -help


1
-v

作用:命令行上的每一個-v都將增加反饋信息的詳細級別。
Level0(默認),除了啓動、測試完成和最終結果外只提供較少的信息。
Level1,提供了較爲詳細的測試信息,如逐個發送到Activity的事件信息。
Level2,提供了更多的設置信息,如測試中選中或未選中的Activity信息。
例:

1
2
3
adb shell monkey -v 10
adb shell monkey -v -v 10
adb shell monkey -v -v -v 10

事件



1
-s <seed>

作用:僞隨機數生成器的seed值。如果用相同的seed值再次運行monkey,將生成相同的事件序列。
例:adb shell monkey -s 12345 -v 10


1
--throttle <milliseconds>

作用:在事件之間插入固定的時間(毫秒)延遲,你可以使用這個設置來減緩Monkey的運行速度,如果你不指定這個參數,則事件之間將沒有延遲,事件將以最快的速度生成。
例:adb shell monkey –throttle 300 -v 10

注:常用參數,一般設置爲300毫秒,原因是實際用戶操作的最快300毫秒左右一個動作事件,所以此處一般設置爲300毫秒。


1
--pct-touch <percent>

作用:調整觸摸事件的百分比。(觸摸事件是指在屏幕中的一個down-up事件,即在屏幕某處按下並擡起的操作)
例:adb shell monkey –pct-touch 100 -v 10

注:常用參數,此參數設置要適應當前被測應用程序的操作,比如一個應用80%的操作都是觸摸,那就可以將此參數的百分比設置成相應較高的百分比。


1
--pct-motion <percent>

作用:調整motion事件百分比。(motion事件是由屏幕上某處一個down事件、一系列僞隨機的移動事件和一個up事件組成)
例:adb shell monkey –pct-motion 100 -v 10

注:常用參數,需注意的是移動事件是直線滑動,下面的trackball移動包含曲線移動。


1
--pct-trackball <percent>

作用:調整滾動球事件百分比。(滾動球事件由一個或多個隨機的移動事件組成,有時會伴隨着點擊事件)
例:adb shell monkey –pct-trackball 100 -v 10

注:不常使用參數,現在手機幾乎沒有滾動球,但滾動球事件中包含曲線滑動事件,在被測程序需要曲線滑動時可以選用此參數。


1
--pct-nav <percent>

作用:調整基本的導航事件百分比。(導航事件由方向輸入設備的上下左右按鍵所觸發的事件組成)
例:adb shell monkey –pct-nav 100 -v 10
注:不常用操作。


1
--pct-majornav <percent>

作用:調整主要導航事件的百分比。(這些導航事件通常會導致UI界面中的動作事件,如5-way鍵盤的中間鍵,回退按鍵、菜單按鍵)
例:adb shell monkey –pct-majornav 100 -v 10


1
--pct-syskeys <percent>

作用:調整系統事件百分比。(這些按鍵通常由系統保留使用,如Home、Back、Start Call、End Call、音量調節)
例:adb shell monkey –pct-syskeys 100 -v 10


1
--pct-appswitch <percent>

作用:調整Activity啓動的百分比。(在隨機的時間間隔中,Monkey將執行一個startActivity()調用,作爲最大程度覆蓋被測包中全部Activity的一種方法)
例:adb shell monkey –pct-appswitch 100 -v 5


1
--pct-anyevent

作用:調整其他事件的百分比。(這包含所有其他事件,如按鍵、其他在設備上不常用的按鈕等)
例:adb shell monkey –pct-anyevent 100 -v 5

約束條件



1
-p <allowed-package-name>

作用:如果你指定一個或多個包,Monkey將只允許訪問這些包中的Activity。如果你的應用程序需要訪問這些包(如選擇聯繫人)以外的Activity,你需要指定這些包。如果你不指定任何包,Monkey將允許系統啓動所有包的Activity。指定多個包,使用多個-p,一個-p後面接一個包名。
例:adb shell monkey -p com.android.browser -v 10


1
-c <main-category>

作用:如果你指定一個或多個類別,Monkey將只允許系統啓動這些指定類別中列出的Activity。如果你不指定任何類別,Monkey將選擇謝列類別中列出的Activity,Intent.CATEGORY_LAUNCHER和Intent.CATEGORY_MONKEY。指定多個類別使用多個-c,每個-c指定一個類別。
例:adb shell monkey -p com.paipai.ershou -v 10 -c


1
--dbg-no-events

作用:設置此選項,Monkey將執行初始啓動,進入一個測試Activity,並不會在進一步生成事件。爲了得到最佳結果,結合參數-v,一個或多個包的約束,以及一個保持Monkey運行30秒或更長時間的非零值,從而提供了一個可以監視應用程序所調用的包之間轉換的環境。


1
--hprof

作用:設置此選項,將在Monkey生成事件序列前後生成profilling報告。在data/misc路徑下生成大文件(~5Mb),所以要小心使用。


1
--ignore-crashes

作用:通常,應用發生崩潰或異常時Monkey會停止運行。如果設置此項,Monkey將繼續發送事件給系統,直到事件計數完成。


1
--ignore-security-exception

作用:通常,當程序發生許可錯誤(例如啓動一些需要許可的Activity)導致的異常時,Monkey將停止運行。設置此項,Monkey將繼續發送事件給系統,直到事件計數完成。


1
--kill-process-after-error

作用:通常,當Monkey由於一個錯誤而停止時,出錯的應用程序將繼續處於運行狀態。設置此項,將會通知系統停止發生錯誤的進程。注意,正常(成功)的結束,並沒有停止啓動的進程,設備只是在結束事件之後簡單的保持在最後的狀態。


1
--monitor-native-crashes

作用:監視並報告Andorid系統中本地代碼的崩潰事件。如果設置–kill-process-after-error,系統將停止運行。


1
--wait-dbg

作用:停止執行中的Monkey,直到有調試器和它相連接。

記錄測試日誌

保存測試日誌其實很簡單,命令如下:

1
adb shell monkey -p com.ihongqiqu -v -v -v 500 > monkeytest.txt


本文地址 http://ihongqiqu.com/2015/12/24/Android-Monkey-Test/ 作者爲 Zhenguo

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章