一.monkey的定義
1.(轉自 https://blog.csdn.net/beyond_f/article/details/78543070 )
Monkey程序由Android系統自帶,使用Java語言寫成,在Android文件系統中的存放路徑是:/system/framework/monkey.jar;
Monkey.jar程序是由一個名爲“monkey”的Shell腳本來啓動執行,shell腳本在Android文件系統中的存放路徑是:/system/bin/ monkey;
通過在CMD窗口中執行: adb shell monkey{+命令參數}來進行Monkey測試。
2.Monkey是Android的SDK中附帶的一個命令行工具
它向系統發送僞隨機的用戶事件流(如按鍵輸入、觸摸屏輸入、手勢輸入等),實現對正在開發的應用程序進行壓力測試。
二、 Monkey的特徵(此段爲轉載https://www.cnblogs.com/yyangblog/archive/2011/03/10/1980068.html)
1、 測試的對象僅爲應用程序包,有一定的侷限性。
2、 Monky測試使用的事件流數據流是隨機的,不能進行自定義。
3、 可對MonkeyTest的對象,事件數量,類型,頻率等進行設置。
三.、monkey基本使用
前提:
pc端已經安裝adb命令(只執行一個包名可以不進行root)
主題:
1.手機連接電腦
2.在pc端輸入adb devices
List of devices attached
(若不顯示設備信息:我的電腦右鍵-設備管理器-右側Android phone-右鍵選擇屬性-詳細信息-選擇硬件id-記錄VID值-進入到C:\Documents and Settings\(你的用戶名)下。進去找到adb_usb.ini文件-把你的VID值寫進去如下圖:然後重新連接輸入命令就可以了)
3.查看包名list
adb shell pm list packages(可看到包名如下)
(若你只有apk,不知道包名。還有一種方法:aapt dump badging[+apk] 也會得到包名如下:)
4.選擇你需要測試的包名(例如com.ktcp.tvvideo)輸入簡單命令如下:(部分日誌如下:)
adb shell monkey -p 包名 [參數] -v (-v -v) 執行次數 >導出log文件 例:
adb shell monkey -p com.ktcp.tvvideo -v 10000 > C:\Users\Administrator\qa.txt
四、參數解釋
1.-p:指的是package。
2.-s :指定產生隨機事件種子值,相同的種子值產生相同的事件序列。(通俗的說:上圖中第一行的seed值爲500,有時使用monkey測試會出現崩潰,輸入相同的seed值再進行測試,可以對崩潰的測試進行復現,方便找到bug原因)
adb shell monkey -p 包名 -s (seed) (-s 500 --ignore-crashes --ignore-timeouts)-v (envent-count)> aa.txt
如:adb shell monkey -p com.ktcp.tvvideo -s 500 -v 10 >aa.txt //重複(seed值要相同)第一次出現崩潰的操作
3.10000:指的是執行10000次事件
解釋:com.ktcp.tvvideo 產生時間序列的種子值:500 忽略程序崩潰 、 忽略超時 , 產生 10000個事件 。
具體參數解釋:(轉http://www.cnblogs.com/biang/p/5309040.html)
完整實例:adb shell monkey -p com.zld.zld_face_rec_app --throttle 100 --pct-touch 70 --pct-motion 5 --pct-nav 0 --pct-trackball 0 --pct-majornav 5 --ignore-crashes --ignore-timeouts --pct-appswitch 10 --pct-syskeys 5 -v-v-v 100 >./monkey_log.txt