Monkey總結(一)

Monkey總結(一)

Monkey是什麼?

      Monkey是Google提供的一個命令行工具,可以運行在模擬器或者實際設備中。它向系統發送僞隨機的用戶事件(如按鍵、手勢、觸摸屏等輸入),對軟件進行穩定性與壓力測試。Monkey程序是Android自帶的。

      路徑:/sdcard/system/framework/Monkey.jar

      啓動腳本路徑:/system/monkey

    

Monkey環境變量的配置

      Monkey是由adb命令啓動,故只要配置adb環境(windows環境爲例)

      1.下載Android SDK,解壓
      2.將SDK目錄下的platform-tools和tools目錄配置到系統環境變量中
      3.打開cmd窗口,輸入adb,adb幫助信息則配置成功


Monkey基本參數

      一個完整的Monkey命令:

         adb shell monkey -p cn.microinvestment.weitou --pct-touch 100 --ingore-crashes --throttle 1000 -s 100 -v -v 50

      以上是由Monkey基本參數組合而成。先看Monkey的基本參數:

      

分類 選項 說明
基本參數 --help 打印幫助信息
-v Monkey向命令行打印輸出的log信息級別
    默認級別是0:-v只打印啓動信息,測試完成信息
    和最終結果信息
    級別2:-v -v 打印時執行的一些信息,如發送事件
    級別3:-v -v -v 打印最詳細的信息


Monkey的約束參數

分類 選項 說明
約束條件 -p<允許執行的包名列表> 如果用詞參數指定了一個或幾個包,Monkey將只允許系
    統啓動這些包裏的Activity。如果你的應用程序還需要
      訪問其它包裏的Activity(如選擇取一個聯繫人),那些包也需要在此同時指定。如果不指定任何包,Monkey將允許系統啓動全部包裏的Activity。要指定多個包,需要使用多個-p選項,每個-p只能用於一個包。
-c<意圖的種類> 如果用此參數指定了一個或幾個類別,Monkey將只允許系統啓動被這些類別中的某個類別列出的Activity。如果不指定任何類別,Monkey將選擇下列類別中列出的Activity:Intent.CATEGORY.LAUNCHER或Intent.CATEGORY.MONKEY。要指定多個類別,需要使用多個-c選項,每個-c選項只能用於一個類別。


Monkey發送的事件類型和頻率

事件 -s<隨機數種子> 僞隨機數生成器的seed值。如果用相同的seed值再次運行Monkey,它將生成相同的事件序列
--throttle<意圖的種類> 在事件之間插入固定延遲。通過這個選項可以減緩Monkey的執行速度。如果不指定該選項,Monkey將不會被延遲,事件將儘可能快地被執行完成
--pct-touch<percent> 調整觸摸事件的百分比(觸摸事件是一個down-up事件),它發生在屏幕上的某單一位置
--pct-motion<percent> 調整動作事件的百分比(動作事件是由屏幕上某處的一個down事件、一系列的僞隨機事件和一個up事件組成)
--pct-trackball<percent> 調整軌跡事件的百分比(軌跡事件由一個或幾個隨機的移動組成,有時還伴隨有點擊)
--pct-nav<percent> 調整“基本”導航時間的百分比(導航事件由來自方向輸入設備的up/down/left/right組成)
--pct-majornav<percent> 調整“主要”導航事件的百分比(這些導航事件通常引發圖形界面中的動作,如5-way鍵盤的中間按鍵、回退按鍵、菜單按鍵)
--pct-syskeys<percent> 調整“系統”按鈕事件的百分比(這些按鍵通常被保留,由系統使用,如Home、Back、StartCall、End   Call及音量控制鍵)
--pct-appswitch 調整啓動Activity的百分比。在隨機間隔裏,Monkey執行一個startActivity()調用,作爲最大程度覆蓋包中全部Activity的一種方法
--pct-anyevent<percent> 調整其他類型事件的百分比。它包羅了所有其他類型的事件,如:按鍵、其他不常用的設備按鈕等
--pct-flip PECENT  
--pct-pinchzoom PERCENT  


Monkey調試參數

分類 選項 說明
調試 --dbg-no-events 設置此選項,Monkey將執行初始啓動,進入到一個測試Activity,然後不會再進一步生成事件。最好將它與-v、一個或幾個包約束。以及一個保持Monkey運行30秒或更長事件的非零值聯合起來,從而提供一個環境,可以監視應用程序所調用的包之間的轉換
--hprof 設置此選項,將在Monkey事件序列之前和之後立即生成profiling報告,這將在data/misc中生成大文件(~5MB),所以要小心使用
--ignore-crashes 通常,當應用程序崩潰或發生任何失控異常時,Monkey將停止運行。如果設置此選項,Monkey將繼續向系統發送事件,直到計數完成
--ignore-timeouts 應用程序發生任何超時錯誤(如"Application   Not Responding"對話框)時,Monkey將停止運行。如果設置此選項,Monkey將繼續向系統發送事件,直到計數完成
--ingore-security-exceptions 當應用程序發生權限許可錯誤時,Monkey將停止運行。如果設置了此選項,Monkey將繼續向系統發送事件,直到計數完成
--ingnore-native-crashes 當應用程序發生底層C/C++代碼引起的崩潰事件時,Monkey將停止運行。選擇此項,Monkey將繼續向系統發送事件,直到計數完成
--monitor-native-crashes 監視並報告Android系統中Android   C/C++引起的崩潰事件。如果設置了--kill-process-after-error,系統將停止運行
--kill-process-after-error 當Monkey由於一個錯誤而停止時,出錯的應用程序將繼續處於運行狀態。當設置了此選項時,將會通知系統停止發生錯誤的進程。注意,當Monkey正常執行完畢,它不會關閉所有啓動的應用,設備依然保留Monkey結束時的狀態
--wait-dbq 啓動Monkey後,先中斷其運行,等待調試器附加上來


Monkey黑白名單

          黑名單:不測試的應用

          白名單:只測試這部分應用

          注意:不能同時設置黑名單和白名單

選項 說明
--pkg-blacklist-file
     PACKAGE_BlACKLIST_FILE
apk黑名單,屏蔽掉黑名單中的apk
--pkg-whitelist-file
    PACK_WHITELIST_FILE
apk白名單,只測試包含在白名單中的apk

           以黑名單爲例,具體的步驟如下:

           1.查找系統的包,並輸出到e盤的pkg文檔裏。adb shell pm list package>e:\pkg.txt

           2.將想要加入黑名單的apk的包名放到blacklist.txt裏,最後push進設備。adb push e:\blacklist.txt /data/local/tmp/

           3.執行Monkey命令。adb shell monkey --pkg-blacklist-file /data/local/tmp/blacklist.txt --throttle 200 200


發佈了25 篇原創文章 · 獲贊 17 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章