Monkey 是什么?
Monkey是Google提供的一個用於穩定性與壓力測試的命令行工具。
Monkey路徑:
路徑:/System/framework/monkey.jar
啟動腳本路徑:/system/bin/monkey
1.首先我們先打開安卓模擬器
2.打開本地cmd命令窗口
3.輸入命令查看 模擬器是否有連接上
adb devices ,出現如下圖所示說明已連接上
4.然后就可以輸入 adb shell 命令 進入monkey的路徑下去執行monkey test了
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
下面的事件都是同理的執行,還有一個地方就是,所有的導航事件都是可以連用的,只要將百分比設置的不同即可