Monkey,猴子。就是像一只猴子,什么都不知道,隨意進行操作。它是Android中的一個命令行工具,可以運行在模擬器里或?qū)嶋H設(shè)備中。它向系統(tǒng)發(fā)送偽隨機的用戶事件流(如按鍵輸入、觸摸屏輸入、手勢輸入等),實現(xiàn)對正在開發(fā)的應(yīng)用程序進行壓力測試。
一、安裝
1.下載SDK for Windows ; SDK不用安裝,直接解壓:android-sdk-
windows 到如d:盤根目錄
- 設(shè)置sdk下面tools的環(huán)境變量
右擊“計算機”-》屬性-》高級系統(tǒng)設(shè)置-》環(huán)境變量-》
點擊Path,將“D:\android-sdk-windows\platform-tools”添加到變量值中,與之前的變量值用“;”隔開。- 下載安裝JDK ,下載完成之后點擊安裝,默認安裝就可以了。
- platforms存在就不用看了(如果SDK無法自動下載platforms,手工下載 android sdk 2.1,將android-2.1_r01-windows.zip文件解壓之后放到android-sdk-windows\platforms)
5.電腦USB連接手機
開始->運行(win+R鍵),輸入cmd,在命令行錄入adb shell 接下來可以運行Monkey Test的命令
二、monkey語法
adb shell monkey -p your.package.name 5000
以上命令的意思為:指定包名的應(yīng)用程序,執(zhí)行5000次偽隨機事件

常用的參數(shù):
- p :指定的包名 例:
adb shell monkey -p com.sankuai.meituan
- p :指定的包名 例:
- s : 隨機數(shù)種子。配置此參數(shù),則事件順序一致。例:
adb shell monkey -p com.sankuai.meituan –s 100
adb shell monkey -p com.sankuai.meituan –s 100
- s : 隨機數(shù)種子。配置此參數(shù),則事件順序一致。例:
- -v :日志的詳細程度。有三個級別。等級越高,日志越詳細。例:
adb shell monkey -p com.sankuai.meituan 100 -v
adb shell monkey -p com.sankuai.meituan 100 -v -v
adb shell monkey -p com.sankuai.meituan 100 -v -v -v
- -v :日志的詳細程度。有三個級別。等級越高,日志越詳細。例:
4.--throttle :操作之間的間隔毫秒數(shù) 例:
adb shell monkey -p com.sankuai.meituan --throttle 3000 1005.--ignore-crashes:忽略奔潰日志。如果使用此參數(shù),即使應(yīng)用程序崩潰,Monkey依然會發(fā)送事件,直到事件計數(shù)完成。例:
adb shell monkey -p com.sankuai.meituan 100 -v --ignore-crashes6.--ignore-timeouts:用于指定當(dāng)應(yīng)用程序發(fā)生ANR(Application No Responding)錯誤時,Monkey是否停止運行。如果使用此參數(shù),即使應(yīng)用程序發(fā)生ANR錯誤,Monkey依然會發(fā)送事件,直到事件計數(shù)完成。例:
adb shell monkey -p com.sankuai.meituan 100 -v --ignore-timeouts6.>:app運行日志存放位置。用來把運行的日志,放在指定的文件中。例:
adb shell monkey -p com.sankuai.meituan 100 >d:\monkey.txt
三、實例
- 1.手機連接電腦,打開開發(fā)者模式,安裝美團app
- 2.獲取app包名(獲取包名,參考)
- 命令行工具,輸入monkey指令.對美團 app進行性能測試
adb shell monkey -p com.sankuai.meituan --throttle 100 -v -v 1000 --ignore-crashes >d:\monkey.txt
對美團app 進行1000偽事件,每次事件間隔100毫秒,遇到錯誤,不結(jié)束事件,日志保存到d:\monkey.txt
- 命令行工具,輸入monkey指令.對美團 app進行性能測試
三、日志分析
做日志文件中搜索"ANR", “Exception”。發(fā)現(xiàn)此類信息,則是有錯誤