一、monkey基礎
1、為什麼要進行monkey測試
monkey測試是為了測試穩定性和健壯性
crash:崩潰、閃退
ANR機制--Application Not Responding:在主線程中進行了耗時的操作
主線程:負責UI相關,子線程:負責具體事務
耗時操作有:在主線程中請求網絡操作、資料庫的查詢、
2、monkey簡介
是android中附帶的一個工具
它向系統發送僞随機的使用者事件流(如按鍵輸入、觸摸屏輸入、手勢輸入等),實作對應用程式進行穩定性和健壯性測試
3、monkey工作原理
monkey運作的時候,生成僞随機事件流,并把他們發給系統,同時monkey還對測試中的系統進行監測,并進行特殊處理
如果應用程式崩潰或接收到任何失控異常,monkey将停止并報錯
如果應用程式産生了應用程式不響應的錯誤,monkey将會停止并報錯
按照標明的不同級别的回報資訊,在monkey中還可以看到其執行過程報告和生成的事件
二、monkey的使用
1、開始-運作-cmd
usb連接配接手機,輸入adb shell monkey 指令
adb monkey shell -p com.tencent.mm -v 500
2、日志的擷取
為了友善分析問題,可以将日志資訊重定向到檔案中
格式:monkey -p com.tencent.mm -v 1000 >1.log --一個>是覆寫
monkey -p com.tencent.mm -v 1000 >>1.log --兩個>>是追加
adb shell
monkey -p com.tencent.mm -v 1000 >d:/1.txt --不正确,因為adb shell 後進入了手機,手機沒有d盤,正确的指令是:
adb shell monkey -p com.tencent.mm -v 1000 >d:/1.txt
如果進行monkey測試時,遇到anr或crash的情況,在抓取log的同時需要提供traces.txt(在/data/anr/下)
adb shell cd /data/anr
ls
monkey指令行參數 :
-p
monkey -p com.tencent.mm -p com.aotuyidongzhifa.cn -v 100
-V -VV -VVV
-s 用于指定僞随機事件生成器的seed值,如果seed相同,則兩次monkey測試所産生的事件序列也是相同的
-throttle<毫秒>用于指定使用者操作間的延遲,機關是毫秒
--ignore -crashes 應用程式即使發生崩潰,也會運作直到計數完成
adb shell monkey -p com.tencent.mm --ignore -crashes -v 500
--ignore - timeouts 應用程式即使發生ANR錯誤時,monkey依然會發送事件,直到事件計數完成
adb shell monkey -p com.tencent.mm --ignore -timeouts
adb shell -> cd system/bin ->ls 可以看到很多linux指令,包括
adb shell monkey -p cn.com.pyc 200
adb shell monkey -p cn.com.pyc -v 500
adb shell monkey -p cn.com.pyc -s 12345 -v 500 >e:1.txt
--打開monkey測試的日志檔案,搜尋error、exception、crash、anr
adb shell monkey -p cn.com.pyc -v -s 1234567 --throttle 300 200 >e:/1.txt
--如果想讓多一點觸摸事件
adb shell monkey -p cn.com.pyc -v -s 11709 --throttle 300 --pct-touch 50 200 >e:/1.txt
--如果測試的過程中出現crash異常,提供monkey日志的同時還要提供monkey指令,還要附上響應的crash截圖
--如果測試過程中出現anr異常,需要另外提供traces檔案 adb shell->cd data/anr ->ls ->traces.txt