1.有adb環(huán)境
2.手機(jī)打開開發(fā)者選項(xiàng)usb調(diào)試,連接數(shù)據(jù)線,使用adb devices查看設(shè)備
3.使用adb install xx.apk 安裝應(yīng)用,打開應(yīng)用,使用adb shell dumpsys window | findstr mCurrentFocus查看包名,adb logcat | findstr START 打開應(yīng)用,可以看到包名和當(dāng)前頁名
monkey命令解析
-p 包名 用以指定包名,多個(gè)包,使用多個(gè)-p 包名 來指定
-v 日志級(jí)別,1個(gè)表示0級(jí),只記錄啟動(dòng) 測試完成 測試結(jié)果等信息,2個(gè)表示1級(jí) 進(jìn)一步記錄逐個(gè)發(fā)送到Activity的事件,3個(gè)表示2級(jí),進(jìn)一步記錄測試中被選中的或未被選中的Activity
-s
在每次執(zhí)行完Monkey命令之后,從輸出里可以看到當(dāng)前的seed值,只要通過-s參數(shù)后指定相同的seed,就可以重復(fù)剛才的操作。
--throttle<毫秒>
事件之間加入延時(shí)操作,一般業(yè)內(nèi)標(biāo)準(zhǔn)是每秒操作2-3次。即:--throttle 200到 --throttle 300
--ignore-crashes
忽略程序崩潰,對(duì)于重新執(zhí)行的 Monkey 命令-s參數(shù)設(shè)置的隨機(jī)數(shù)seed值將不會(huì)生效。
--ignore-timeouts
忽略程序超時(shí)?!具@里的超時(shí)并不是網(wǎng)絡(luò)超時(shí)或者接口返回超時(shí),而是程序相應(yīng)超時(shí)導(dǎo)致的ANR】
--ignore-security-exceptions
用于指定當(dāng)應(yīng)用程序發(fā)生許可錯(cuò)誤時(shí)(如證書許可,網(wǎng)絡(luò)許可等),Monkey是否停止運(yùn)行。
--kill-process-after-error
應(yīng)用程序僅是靜止在發(fā)生錯(cuò)誤時(shí)的狀態(tài),系統(tǒng)并不會(huì)結(jié)束該應(yīng)用程序的進(jìn)程。
--monitor-native-crashes
用于指定是否監(jiān)視并報(bào)告應(yīng)用程序發(fā)生崩潰的本地代碼。
--pct-{事件類別}{事件類別百分比}
雖然Monkey測試是隨機(jī)事件,但是我們可以指定事件的類型?!咀⒁狻浚孩偎兄付ㄊ录臄?shù)值加起來不能超過100。②不做任何指定時(shí),默認(rèn)為--pct-anyevent <percent> 類型,百分比為百分之百,也就是純隨機(jī)事件。③如果通過其他的參數(shù)配置了之后,如果相加的百分比不為百分百,余下的百分比部分也會(huì)生成隨機(jī)事件。
--pct-touch <percent>:指定觸摸事件的百分比。
--pct-motion <percent>:指定滑動(dòng)事件的百分比。
--pct-trackball <percent>:指定軌跡球事件的百分比。
--pct-nav <percent>:指定導(dǎo)航事件中,up、down、left、right等事件的百分比。
--pct-majornav <percent>:指定導(dǎo)航事件中,back、menu等事件的百分比。
--pct-syskeys <percent>:指定系統(tǒng)按鍵的百分比,包括HOME、Back、音量等。
--pct-appswitch <percent>:指定Activity之間切換的比例。
--pct-anyevent <percent>:指定任意事件的百分比。

--hprof
指定該項(xiàng)后在事件序列發(fā)送前后會(huì)立即生成分析報(bào)告? —— 一般建議指定該項(xiàng)
①--dbg-no-events:初始化啟動(dòng)的activity,但是不產(chǎn)生任何事件。
⑧--wait-dbg:知道連接了調(diào)試器才執(zhí)行monkey測試。
adb shell monkey -help 查看Monkey測試的其他命令行
日志輸出
adb shell monkey -p 包名 -v 300 >e:\text.txt 后面內(nèi)容會(huì)被覆蓋
adb shell monkey -p 包名 -v 300 >> e:\text.txt 后面內(nèi)容追加輸出
退出monkey測試
adb reboot 重啟手機(jī)
查找monkey進(jìn)程adb shell ps | grep monkey(windows下用findstr代替grep) 通過adb shell kill 進(jìn)程id 殺死進(jìn)程
再次查看adb shell ps | grep monkey進(jìn)程是否已經(jīng)不在
測試結(jié)果分析
錯(cuò)誤重現(xiàn),找到出錯(cuò)的地方,查看往前的一些事件,手動(dòng)執(zhí)行該事件
如果手動(dòng)無法復(fù)現(xiàn),使用seed值重現(xiàn)
在log中通過關(guān)鍵字查詢:當(dāng)Monkey命令執(zhí)行過程中遇到錯(cuò)誤時(shí),會(huì)輸出對(duì)應(yīng)異常信息,關(guān)鍵字查詢:應(yīng)用程序無響應(yīng)(ANR)、崩潰(CRASH)、其他問題(Exception)、“Force Close”
參考
如何讓adb在指定頁面執(zhí)行
1.可在執(zhí)行monkey命令之前,先執(zhí)行禁用通知欄的命令
adb shell settings put global policy_control immersive.full=*
解禁命令:adb shell settings put global policy_control null
2.設(shè)置白名單頁
具體參考:https://blog.csdn.net/joey_2018_/article/details/88607549