Monkey是一個命令行工具,可以運行在模擬器里或?qū)嶋H設(shè)備中,使用安卓調(diào)試橋(adb)來運行它,向系統(tǒng)發(fā)送偽隨機的用戶事件流,實現(xiàn)對正在開發(fā)的應(yīng)用程序進行壓力測試,可以根據(jù)獲取的log信息進行修復(fù)。

知識詳解
1、Android-sdk中的adb命令即可,cmd運行adb提示沒有該命令時記得配置環(huán)境變量

四大類——常用選項 、 事件選項 、 約束選項 、 調(diào)試選項
一、常用選項
--help:打印幫助信息
-v:指定打印信息的詳細(xì)級別,一個 -v增加一個級別 , 默認(rèn)級別為 0 。
1、基礎(chǔ)命令
Adb devices 查看設(shè)備連接狀態(tài)
adb shell monkey 100 #自動隨機運行
Monkey隨機啟動APP并發(fā)送100個隨機事件

2、adb shell monkey -v 100 #顯示反饋信息
-v 作用:命令行上的每一個-v都將增加反饋信息的詳細(xì)級別。
Level0(默認(rèn)),除了啟動、測試完成和最終結(jié)果外只提供較少的信息。
Level1,提供了較為詳細(xì)的測試信息,如逐個發(fā)送到Activity的事件信息。
Level2,提供了更多的設(shè)置信息,如測試中選中或未選中的Activity信息。
例:
adb shell monkey -v 10
adb shell monkey -v -v 10
adb shell monkey -v -v -v 10
monkey
一、約束選項
1、指定應(yīng)用中隨機壓力測試
查看包名:adb shell pm list packages
命令:Adb shell monkey -p 包名 -v 100
可以一次指定多個應(yīng)用的adb shell monkey -p 包名 -p 包名 -v 100

一、事件選項
1、減緩Monkey的運行速度
一般設(shè)置為300毫秒,原因是實際用戶操作的最快300毫秒左右一個動作事件,所以此處一般設(shè)置為300毫秒。
adb shell monkey (-p xxx)–throttle 300 -v 10

(1)--pct-touch<percent> #對應(yīng)事件ID:0
調(diào)整觸摸事件的百分比(觸摸事件是一個down-up事件,它發(fā)生在屏幕上的某單一位置)。
(2)--pct-motion <percent>#對應(yīng)事件ID:1
調(diào)整motion事件百分比。(motion事件是由屏幕上某處一個down事件、一系列偽隨機的移動事件和一個up事件組成)
(3)--pct-trackball<percent> #對應(yīng)事件ID:3
調(diào)整軌跡事件的百分比(軌跡事件由一個或幾個隨機的移動組成,有時還伴隨有點擊)。
monkey
(4)--pct-nav<percent> #對應(yīng)事件ID:5
調(diào)整“基本”導(dǎo)航事件的百分比(導(dǎo)航事件由來自方向輸入設(shè)備的up/down/left/right組成)。
(5)--pct-majornav<percent>#對應(yīng)事件ID:6
調(diào)整“主要”導(dǎo)航事件的百分比(這些導(dǎo)航事件通常引發(fā)圖形界面中的動作
(6)--pct-syskeys<percent>#對應(yīng)事件ID:7
調(diào)整“系統(tǒng)”按鍵事件的百分比(這些按鍵通常被保留,由系統(tǒng)使用,如Home、Back、Start Call、End Call及音量控制鍵)。
(7)--pct-appswitch<percent>#對應(yīng)事件ID:8
調(diào)整啟動Activity的百分比。在隨機間隔里,Monkey將執(zhí)行一個startActivity()調(diào)用,作為最大程度覆蓋包中全部Activity的一種方法。
(8)--pct-anyevent<percent>#對應(yīng)事件ID:10
調(diào)整其它類型事件的百分比。它包羅了所有其它類型的事件
一、調(diào)試選項
--dbg-no-events:初始化啟動的activity,但是不產(chǎn)生任何事件。
--hprof:指定該項后在事件序列發(fā)送前后會立即生成分析報告 —— 一般建議指定該項。
--ignore-crashes:忽略崩潰
--ignore-timeouts:忽略超時
--ignore-security-exceptions:忽略安全異常
--kill-process-after-error:發(fā)生錯誤后直接殺掉進程
--monitor-native-crashes:跟蹤本地方法的崩潰問題
--wait-dbg:知道連接了調(diào)試器才執(zhí)行monkey測試。
monkey.png


