monkey特點(diǎn)
1.monkey用來(lái)做Android系統(tǒng)的壓力測(cè)試
2.monkey是Android自帶的工具
3.monkey可以直接通過adb命令直接調(diào)用
4.monkey可以同時(shí)測(cè)試多個(gè)APP
5.monkey可以定義每次測(cè)試的順序
6.monkey可以設(shè)置測(cè)試的日志級(jí)別
7.monkey日志分析測(cè)試結(jié)果
8.monkey可設(shè)置時(shí)間操作的百分比
9.monkey可以設(shè)置異常繼續(xù)操作
monkey的環(huán)境搭建
1.monkey是Android自帶的工具
2.Android內(nèi)核是Linux的
3.Android的操作,adb命令和Linux操作系統(tǒng)的命令一樣
4.Android開發(fā)語(yǔ)言:Java
JDK環(huán)境搭建
① 安裝:jdk-8u121-windows-x64.exe
② 配置環(huán)境變量:path:C:\Program Files\Java\jdk1.8.0_121\bin;JAVA_HOME:C:\Program Files\Java\jdk1.8.0_121\bin;CLASSPATH:%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
③ 驗(yàn)證Java是否安裝成功:命令行輸入java、javac、java -version
① 解壓android-sdk-windows.rar
② 配置環(huán)境變量:
path:G:\installation-package\android\android-sdk-windows\platform-tools;G:\installation-package\android\android-sdk-windows\tools
Android_home:G:\installation-package\android\android-sdk-windows
③ 命令行輸入adb,驗(yàn)證sdb是否安裝成功
Android特性
1.Java語(yǔ)言開發(fā)
2.Android是一個(gè)移動(dòng)操作系統(tǒng),系統(tǒng)是Linux內(nèi)核系統(tǒng)
SDK Manager.exe:創(chuàng)建和管理Android版本
AVD Manager.ext:創(chuàng)建和管理模擬器

adb命令
1.adb shell:進(jìn)入設(shè)備的shell

2.adb devices:查找連接的設(shè)備

3.adb kill-server:關(guān)閉adb服務(wù)
4.adb start-server:?jiǎn)?dòng)adb服務(wù)
5.adb -s 設(shè)備名稱 shell:進(jìn)入制定的設(shè)備

6.exit:退出設(shè)備的shell

7.
只有對(duì)sdcard有讀寫權(quán)限,其它的文件都只有讀的權(quán)限8.
adb shell touch /sdcard/test.txt:新建文件
9.adb shell rm -rf /sdcard/test.txt:刪除文件
10.pwd:查看當(dāng)前的路徑

11.
adb push 本地路徑 /sdcard/:文件上傳
12.
adb shell mkdir /sdcard/test:新建文件夾
13.
adb pull /sdcard/test.txt e:\test:下載文件
14.
adb install 路徑:安裝apk
15.
adb uninstall 包名:卸載apk
16.
exit:退出shell
mac地址,每一臺(tái)電腦都是唯一的
每一個(gè)APP都有一個(gè)唯一的包名,可以通過包名來(lái)找到我們想要的APP,并進(jìn)行操作,如果我們要卸載一個(gè)APP,那么就可以通過包名去卸載
查看包名的方式
① cd /data/data目錄下就可以找到手機(jī)所有的包名,可以找到最新那個(gè)包名,就是剛剛安裝的那個(gè)軟件的包名
② adb shell pm list package -f來(lái)查看所有的包名,通過data查看,只能看到包名,通過adb shell pm list package -f查看,就會(huì)把a(bǔ)pk的安裝路徑,與包名相對(duì)應(yīng)。系統(tǒng)自帶的APP都安裝在/system/app目錄,而我們自主開發(fā)的APP,一般都安裝在data/app目錄中
③ adb shell dumpsys activity>e:\test\test.log把手機(jī)所有的包名都保存到本地,然后通過安裝前后兩次的所有包名進(jìn)行對(duì)比,得出我們剛剛安裝的APP的包名
Android命令
android list targets,查看當(dāng)前Android已安裝的版本,和SDK Manager.ext上的版本一致

從上面的命令可以看出,有些是
adb pull,并沒有帶shell,有些是帶了shell的,這能說(shuō)明,代理shell的,可以直接用adb shell,進(jìn)入到shell里面,然后再執(zhí)行命令也可以成功的。如果沒有帶shell的,如:adb install,這樣的命令只能在DOS命令行下運(yùn)行
monkey命令
1.adb shell monkey:?jiǎn)?dòng)monkey,如果帶shell的,可以到shell里面去運(yùn)行,也可以再DOS下運(yùn)行
2.-p:定義包名,后面緊跟著就是被測(cè)試APP的包名,再monkey里面,定位APP使用包名
例:adb shell monkey -p 包名
3.monkey正常運(yùn)行必備的參數(shù)
-p 引用包 執(zhí)行次數(shù)
adb shell monkey -p com.tencent.mm 10
4.日志級(jí)別
①-v:打印出開啟和結(jié)束的日志
②-v -v:打印每個(gè)執(zhí)行的activity的開始和結(jié)束的日志,一般詳細(xì)的日志
③-v -v -v:打印出所有的activity的日志,很詳細(xì)的日志
5.monkey測(cè)試多個(gè)APP
adb shell monkey -p 包名1 -p 包名2 100

6.seed值:用來(lái)記錄每次操作的順序

-s seed值:自己定義seed值
7.
--throttle<毫秒>在事件之間插入固定延遲。(休眠)
monkey除了操作APP本身的功能之外,還操作手機(jī)自帶的按鍵8.
--pct-touch:點(diǎn)擊事件9.
--pct-rotation:翻屏事件10.
--pct-motion:劃屏事件11.
--pct-syskeys:硬件事件(home鍵、音量調(diào)節(jié),打電話、切圖)12.
--pct-appswitch:?jiǎn)?dòng)activity的百分比13.
--pct-flip:鍵盤事件的百分比14.
--pct-pinchzoom:縮放總的事件百分比是100%,不能大于100%,如果總時(shí)間不是大于100%,其它的部分就會(huì)隨機(jī)分配
參數(shù)
adb shell monkey -p com.tencent.mm --pct-touch 10 --pct-motion 0 --ignore-crashes --ignore-timeouts --ignore- security- exceptions --kill-process- after-error --pct-rotation 50 --pct-appswitch 0 --pct-syskeys 0 --pct-anyevent 0 --pct-flip 10 --pct-pinchzoom 0 -v -v -v 10000
日志分析
anr:程序崩潰
exception :異常,null空指針
error:程序錯(cuò)誤
crash:程序閃退