Android Monkey Test

Android Monkey Test

 發表於 2015-12-24

文章目錄
  1. 1. Monkey測試介紹
  2. 2. Monkey測試特點
  3. 3. Monkey命令
    1. 3.1. 常規
    2. 3.2. 事件
    3. 3.3. 約束條件
    4. 3.4. 記錄測試日誌

作爲一個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,直到有調試器和它相連接。

記錄測試日誌

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

adb shell monkey -p com.ihongqiqu -v -v -v 500 > monkeytest.txt
Author: Zhenguo      Blog: http://ihongqiqu.com/     Email: [email protected] 
I have almost 4 years of Android application development experience and have a keen interested in the latest emerging technologies. I use my spare time to turn my experience, ideas and love for Android tech into informative articles, tutorials and more in hope to help others and learn more.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章