monkey命令淺析

一、monkey簡介

Monkey是一個運行在Android目標機器的一個應用,是一個基於命令行的應用界面測試工具,它可以獨立的運行。根據用戶提供的參數,它會根據算法自動生成不同用戶事件的僞隨機流來驅動測試的進行,比如點擊,觸控,手勢,以及一系列系統級別的事件,然後把這些事件發送到Android操作系統來觸發事件的發生。用戶可以使用Monkey來對你正在開發的應用以一種隨機但可複用的方式進行壓力測試。

二、monkey參數解析

Monkey支持一系列的參數選項來運行,但總的來說可以把這些選項劃分成以下四個基本類別:

•    基本配置選項: 比如配置將要測試的事件的數量

•    運行約束選項: 如設置只對單獨的一個包進行測試

•    事件類型和頻率:比如手勢事件佔所有隨機產生事件的30%,點擊佔50%,觸控佔20%

•    調試選項

1)基本配置選項

-help: 提示幫助信息

-v:指定打印信息精度,一個-v增加一個精度

操作

1. adb shell monkey -help

2. adb shell monkey –v 20 對比 adb shell monkey –v –v 20

2)運行約束選項

•    -p <apl包名>:一個-p 指定一個包名,可同時指定多個包

   Monkey只啓動指定的包(運行時可觸發其他應用)

    所有安裝的應用包在data/data

    logcat查看應用包名

    例:adb shell monkey –p com.baidu.tieba –v 200

•    -c <activity-category>: 一個-c制定一個category,可同時指定多個,不指定的話,默認爲Intent.CATEGORY_LAUNCHER或Intent.CATEGORY_MONKEY

•    實際使用中一般較少用到該參數。

3)事件類型和頻率

頻率

•    -s <seed>: 僞隨機數生成器的seed值(一串數字),同一個seed值多次運行monkey,隨機事件是一樣的。有助於定位排查問題。

•    adb shell monkey –s  1567 –p com.baidu.tieba–v 200

•    --throttle <milliseconds>:事件間的間隔,單位爲毫秒,可控制事件頻率

•    adb shell monkey –s 1567 –p com.baidu.tieba –v 200

•    對比事件頻率,日誌點擊座標(事件一樣)

事件選項

•    --pct-touch <percent>:調整觸摸事件百分比(一個點down-up)

•    --pct-motion <percent>:調整動作事件百分比(down-**-up)

•    --pct-trackball <percent>:調整軌跡事件百分比(系列移動及點擊)

•    --pct-nav <percent>:調整“基本”導航事件百分比(上下左右導航)

•    --pct-majornav <percent>:調整“主要”導航事件百分比(home/back/menu)

•    --pct-syskeys <percent>:調整系統按鍵事件百分比

•    --pct-appswitch <percent>:調整啓動avtivity百分比(重要)

•    --pct-anyevent <percent>:調整其他類型事件百分比

4)調試選項

•    --dbg-no-events:啓動後不生成事件(寫在事件前)

•    --hprof:生成profiling報告(data/misc?)

•    --ignore-crashes:忽略crash

•    --igmote-timeouts:忽略超時

•    --ignore-security-exceptions:忽略許可錯誤

•    --kill-process-after-error:出錯時殺掉被測進程

•    --monitor-native-crashes:監控本地代碼crash

•    --wait-dbg:等待調試器

三、注意事項

1)復現monkey操作過程需要加seed種子號,-s(兩次命令的參數必須要一樣)

2)要實現多機運行,需要在adb後加-s deviceid號,並且命令行結尾需要加靜默符號&(dos環境下還不行,Linux環境下可以)

示例:

adb -s 1d529206 shell monkey -s 1313 -v --throttle 300 --pct-touch 50 -p com.baidu.tieba 200

 

                   


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