Monkey命令參數詳解

什麼是monkey

Monkey是Android中的一個命令行工具,能夠運行在模擬器裏或實際設備中。它向系統發送僞隨機的用戶事件流(如按鍵輸入、觸摸屏輸入、手勢輸入等),實現對正在開發的應用程序進行壓力測試.shell

基本語法

$ adb shell monkey [options]

若是不指定options,Monkey將以無反饋模式啓動,並把事件任意發送到安裝在目標環境中的所有應用程序網絡

$ adb shell monkey -p package -v 500

指定對package這個應用程序進行monkey測試,並向其發送500個僞隨機事件。其中 -p 表示對象包包,–v 表示反饋信息級別app

命令參數

可使用命令 adb shell monkey -help 查看命令參數工具

一、參數: -p

用於約束限制,用此參數指定一個或多個應用。指定應用以後,monkey將只容許系統啓動指定的app;若是不指定應用,將容許系統啓動設備中的全部應用測試

  • 指定一個應用: adb shell monkey -p com.ifeng.news2 100
  • 指定多個應用:adb shell monkey -p com.ifext.news –p com.ifeng.news2  100
  • 不指定應用:adb shell monkey 100
二、參數:-c

用於約束限制,用此參數指定了一個或幾個類別,Monkey將只容許系統啓動被這些類別中的某個類別列出的Activity。若是不指定任何類別,Monkey將選擇下列類別中列出的Activity:Intent.CATEGORY.LAUNCHER 或 Intent.CATEGORY.MONKEY。要指定多個類別,須要使用多個-c選項,每一個-c選項只能用於一個類別。命令行

三、參數:-v

用於指定反饋信息級別(信息級別就是日誌的詳細程度),總共分3個級別:日誌

  • 默認級別 Level 0:-v
    • adb shell monkey -p com.ifeng.news2 –v 100:說明僅提供啓動提示、測試完成和最終結果等少許信息
  • 日誌級別 Level 1:-v -v
    • adb shell monkey -p com.ifeng.news2 –v -v 100:說明提供較爲詳細的日誌,包括每一個發送到Activity的事件信息
  • 日誌級別 Level 2:-v -v -v
    • adb shell monkey -p com.ifeng.news2 –v -v –v 100:說明最詳細的日誌,包括了測試中選中/未選中的Activity信息
四、參數: -s

僞隨機數生成器的seed值。若是用相同的seed值再次運行Monkey,它將生成相同的事件序列code

  • Monkey 測試1:adb shell monkey -p com.ifeng.news2 -s 10  100
  • Monkey 測試2:adb shell monkey -p com.ifeng.news2 –s 10 100

兩次測試的效果是相同的,由於模擬的用戶操做序列(每次操做按照必定的前後順序所組成的一系列操做,即一個序列)是同樣的。對象

五、參數: --throttle<毫秒>

用於指定用戶操做(即事件)間的延時,單位是毫秒進程

adb shell monkey -p com.ifeng.news2 --throttle 5000 100
六、參數: --ignore-crashes

用於指定當應用程序崩潰時(Force& Close錯誤),Monkey是否中止運行。若是使用此參數,即便應用程序崩潰,Monkey依然會發送事件,直到事件計數完成。

  • adb shellmonkey -p com.ifeng.news2 --ignore-crashes 1000測試過程當中即便程序崩潰,Monkey依然會繼續發送事件直到事件數目達到1000爲止
  • adb shellmonkey -p com.ifeng.news2 1000測試過程當中,若是acg程序崩潰,Monkey將會中止運行
七、參數: --ignore-timeouts

用於指定當應用程序發生ANR(Application No Responding)錯誤時,Monkey是否中止運行。若是使用此參數,即便應用程序發生ANR錯誤,Monkey依然會發送事件,直到事件計數完成。

adb shellmonkey -p com.ifeng.news2--ignore-timeouts 1000
八、參數: --ignore-security-exceptions

用於指定當應用程序發生許可錯誤時(如證書許可,網絡許可等),Monkey是否中止運行。若是使用此參數,即便應用程序發生許可錯誤,Monkey依然會發送事件,直到事件計數完成。

adb shellmonkey -p com.ifeng.news2 --ignore-security-exception 1000
九、參數: --kill-process-after-error

用於指定當應用程序發生錯誤時,是否中止其運行。若是指定此參數,當應用程序發生錯誤時,應用程序中止運行並保持在當前狀態(注意:應用程序僅是靜止在發生錯誤時的狀態,系統並不會結束該應用程序的進程)

adb shellmonkey -p cn.emoney.acg --kill-process-after-error 1000
十、參數: --monitor-native-crashes

用於指定是否監視並報告應用程序發生崩潰的本地代碼。

adb shellmonkey -p cn.emoney.acg --monitor-native-crashes 1000
十一、參數: --pct-{+事件類別}{+事件類別百分比}

用於指定每種類別事件的數目百分比(在Monkey事件序列中,該類事件數目佔總事件數目的百分比)

  • --pct-touch{+百分比}:調整觸摸事件的百分比(觸摸事件是一個down-up事件,它發生在屏幕上的某單一位置)

    adb shell monkey -p com.ifeng.news2 --pct-touch 10 1000
  • --pct-motion {+百分比}:調整動做事件的百分比(動做事件由屏幕上某處的一個down事件、一系列的僞隨件機事和一個up事件組成)

    adb shell monkey -p com.ifeng.news2 --   pct-motion 20 1000
  • --pct-trackball {+百分比}:調整軌跡事件的百分比(軌跡事件由一個或幾個隨機的移動組成,有時還伴隨有點擊)

    adb shell monkey -p com.ifeng.news2 --pct-trackball 30 1000
  • --pct-nav {+百分比}:調整「基本」導航事件的百分比(導航事件由來自方向輸入設備的up/down/left/right組成)

    adb shell monkey -p com.ifeng.news2 --pct-nav 40 1000
  • --pct-majornav {+百分比}:調整「主要」導航事件的百分比(這些導航事件一般引起圖形界面中的動做,如:5-way鍵盤的中間按鍵、回退按鍵、菜單按鍵)

    adb shell monkey -p com.ifeng.news2 --pct-majornav 50 1000
日誌輸出輸出日誌的方法:

C:\Documents and Settings\Administrator>adb shell monkey -p 包名 -v 300  >D:\log.txt

相關文章
相關標籤/搜索