Monkey是什么
簡單來講是計算機在黑盒情況下,隨機慎陵、無目的、胡亂的操作席纽,包括點擊、滑動润梯、旋轉(zhuǎn)等對指定程序進行“一頓摩擦”过牙,從而在產(chǎn)品早期找到許多Bug。具體到Android應(yīng)用程序中寇钉,即登錄一個APP程序,運行Monkey指定隨機的進行操作谦秧,在操作過程中可能由于APP的不穩(wěn)定或是功能撵溃、邏輯缺陷,從而導(dǎo)致APP崩潰或者是Monkey Crash缘挑,通過日志快速的定位問題和修復(fù)Bug。
Monkey的基礎(chǔ)使用
針對第一次或者只接觸了幾次Monkey的朋友卖哎,以下將簡單的講述使用和快速定位問題的方式。
Monkey命令
以Android studio為開發(fā)環(huán)境焕窝,在Terminal中輸入一行Monkey代碼即可運行Monkey進行APP的測試。如adb shell monkey -p com.test.news -v -v -v 100
此時將會對包名為 com.test.news
這個APP進行Monkey測試它掂。如果不指定包名溯泣,即直接adb shell monkey -v 100
。
Monkey測試可以加入相應(yīng)的點擊垃沦、觸摸、滑動等事件在整個測試過程中的百分比靶剑。這里參考事件百分比給出常用的幾個事件:
- 滑動事件百分比,參數(shù) --pct-motion
- 其它事件百分比桩引,參數(shù) --pct-anyevent
- 系統(tǒng)事件百分比收夸,參數(shù)--pct-syskeys
- 軌跡事件百分比,參數(shù)--pct-trackball
- 基本導(dǎo)航事件百分比卧惜,參數(shù)--pct-nav
- Activity啟動事件百分比夹纫,參數(shù)--pct-appswitch
如何快速定位Bug
由于Monkey的特殊性手幢,自己復(fù)現(xiàn)其操作找到Bug的方式繁瑣復(fù)雜忱详,且不容易實現(xiàn),因此可以通過在Monkey日志中搜索關(guān)鍵字匈睁,快速定位問題。一般情況下航唆,如果Monkey中途crash,會在最后給出相應(yīng)的系統(tǒng)錯誤信息粪狼。如果Monkey直到最后也沒有錯誤信息,也不是正常finish而是crash可以通過以下的第4點進行相關(guān)Bug的查找再榄。
- Exception(一般是空指針導(dǎo)致的)
- ANR
- OOM
- calendar_time(當前面三個都搜不到Bug的時候享潜,搜索最后一次calendar_time的時間拘哨,并在系統(tǒng)日志中搜索對應(yīng)時間,查找相關(guān)的Bug)
保存日志
Monkey日志可以在運行Monkey前一并在命令中輸入進行保存陷揪,如adb shell monkey -p com.test.news -v -v 100 > D:\monkey\testLog.txt
Android studio 系統(tǒng)日志可以同樣在Terminal中輸入adb logcat -v time > D:\systemLog.txt
進行保存猬腰。