Monkey 是什麼?android
Monkey是Google提供的一個用於穩定性與壓力測試的命令行工具。shell
Monkey路徑:app
路徑:/System/framework/monkey.jardom
啓動腳本路徑:/system/bin/monkey工具
1.首先咱們先打開安卓模擬器測試
2.打開本地cmd命令窗口spa
3.輸入命令查看 模擬器是否有鏈接上命令行
adb devices ,出現以下圖所示說明已鏈接上日誌
4.而後就能夠輸入 adb shell 命令 進入monkey的路徑下去執行monkey test了orm
cd /system/framworke/ 成功進入目錄,而後再來找下是否是有monkey的jar包
5. 模糊查詢含有monkey的命令:ls | grep monkey ,能夠看到裏面是有monkey.jar包
6.咱們再看下啓動腳本 cd /system/bin/ 成功進入目錄,而後輸入命令: ls | grep monkey 找下是否是有monkey 啓動腳本
上圖能夠看出是有monkey的啓動腳本的
由此上一節提到的環境變量的配置童鞋們也知道是作什麼用的了
配置adb的環境
monkey是由adb命令啓動的,因此要配置adb的環境
1.下載 Android SDK,解壓
2.將SDK目錄下的platform-tools 和 tools目錄配置到系統換環境變量中(將變量配置好以後才能安裝apk文件)
3.打開cmd窗口,輸入adb,有adb幫助信息則配置成功
安裝apk文件
首先 將須要進行測試的apk包拷貝到platform-tools 目錄下
而後執行安裝命令 adb install test.apk
要注意點的一點就是,執行安裝命令的時候,須要進入該目錄下,我這邊的目錄是
命令:E:
進入目錄下,cd E:\Android\android-sdk\platform-tools
而後執行安裝apk命令,出現下圖 Success 表示安裝成功,右側的就是模擬器安裝成功的app
命令格式:(輸入命令以後,模擬器上會運行對應的指定操做)
1.PC 啓動
>adb shell monkey [option] <count> "[]"可選參數,可不填,"<>"裏面的參數必填,不填會報錯
2.shell端啓動
> adb shell
>monkey [optinon] <count>
這兩種方式有什麼不一樣呢,第一種PC啓動,結果能夠保存在PC端;第二種手機端啓動,結果只能保存在手機。
固然 運行monkey時候的log想要保存出來也是能夠的
保存monkey運行的log
1.保存在PC中 adb shell monkey [option] <count> > d:\monkey.txt 例如:adb shell monkey 100 > d:\monkey.txt (運行100次,日誌保存在D盤,第2,第3同樣的意思,就不舉例了)
2.保存在手機中 monkey [option] <count> > /mnt/sdcard/monkey.txt
3.標準流與錯誤流分開保存
monkey [option] <count> 1> /mnt/sdcard/monkey.txt 2> /mnt/sdcard/error.txt
monkey test的話 首先是須要了解各個參數是幹嗎的,各個參數的意義,再進行實踐操做
adb shell monkey -help 查看幫助命令
adb shell pm list packages 列出全部apk的包名
下面來進行實操演練
手機端運行
首先進入adb shell
運營對應的apk文件 adb shell monkey -p com.dabai.app.im 100 ( -p 後面接apk包名 而後接次數)
上面紅色框中就是報錯的提示 運行19次後報錯,由於上圖沒有加日誌導出,下面是事件參數,這邊就將各類參數導出日誌的方法執行一遍
若是在執行過程當中,運行次數過多,想要中止monkey的運行,那麼就再打開一個cmd命令窗口
先查看出monkey的進程
adb shell ps | find "monkey"
查詢出來的結果中 後面有跟着對應的apk包名
那麼kill這個進程便可
adb shell kill +進程編號 例如我這邊的是:adb shell kill 2189,執行後,就會結束運行了
Monkey事件參數
對應日誌中的事件
對應命令(執行的效果的話 童鞋們最好本身執行而後對照着模擬器觀察就能夠知道效果了)
隨機種子 -S
adb shell monkey -p com.dabai.app.im -s 100 -v -v 100 (-S後面的100是隨機序列號也就是對應seed編號名稱,-V後面的100表明的是運行次數)下次若是還要查看該seed的執行過程,就在-s後面加100便可
固定延時 --throttle<毫秒>
adb shell monkey -p com.dabai.app.im --throttle 200 -v -v 100
隨機延時 --randomize-throttle
adb shell monkey -p com.dabai.app.im --throttle 200 --randomize-throttle -v -v 100 (這句話的意思是0-200毫秒的隨機延時)
touch 點擊事件
adb shell monkey -p com.dabai.app.im --pct-touch 100--throttle 200 --randomize-throttle -v -v 100 (--pct是百分比的簡稱,touch後面跟的100 意思是 100%的操做都是執行這個touch)
motion 移動事件
adb shell monkey -p com.dabai.app.im --pct-motion 100--throttle 200 --randomize-throttle -v -v 100
trackball 軌跡球事件
adb shell monkey -p com.dabai.app.im --pct-trackball 100--throttle 200 --randomize-throttle -v -v 100
nav 導航時事件(上下左右鍵的意思)
adb shell monkey -p com.dabai.app.im --pct-nav 100--throttle 200 --randomize-throttle -v -v 100
majornav 主要導航事件
adb shell monkey -p com.dabai.app.im --pct-majornav 100--throttle 200 --randomize-throttle -v -v 100
下面的事件都是同理的執行,還有一個地方就是,全部的導航事件都是能夠連用的,只要將百分比設置的不一樣便可