前一篇文章介紹了Monkey的API函數內容,這篇文章介紹windows環境下Monkey的基本使用方法。
由於博客園年底才能完成對markdown解析的升級,可移步我的個人博客查看此文,已獲得更好的交互體驗:persistz的個人博客
Monkey的使用是和adb (Android Debug Bridge) 聯系在一起的,本文的環境為Android Studio 2.2.2,adb的目錄默認為:
> C:\Users\Yourname\AppData\Local\Android\sdk\platform-tools
-
使用cd命令進入adb文件所在目錄,或者將其目錄加入系統環境變量。
-
使用adb devices查看當前連接設備。
adb devices
-
查看包名list
adb shell pm list packages
找到待測package name,這里使用android.zhibo8進行測試
-
輸入測試monkey命令,這里的命令輸入可以參考API進行.本次測試中,我們輸入:
adb shell monkey –p android.zhibo8 –-throttle 100 –-pct-touch 50 –-pct-motion 50 –v –v 10
點擊回車,測試記錄會在我們的命令行界面中實時顯示:
-
分析測試報告:
分析測試報告時,需要注意以下內容。
注意報告中的seed值:我們剛才執行monkey時,沒有指定seed,在報告一開始,可以看到其自動生成的seed值,見下圖紅色部分。如果我們指定了seed,則可以使用相同的seed來生成相同的序列。
注意查找日志中的無響應問題和崩潰問題。無響應問題可以在日志中搜索 “ANR” ,崩潰問題搜索 “CRASH” ,內存泄露問題搜索"GC"(需進一步分析),異常問題搜索 “Exception”(如果出現空指針, NullPointerException,需格外重視)。
為了進一步分析問題的來源,可以找到Log中出現問題處的前一次Switch,隨后根據Log主要是查看相關的Activity,下面的Log執行的就是LaunchActivity。
Switch: #Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10200000;component=android.zhibo8/.ui.contollers.main.LaunchActivity;end
補充問題
-
如何將測試報告記錄在本地:
將命令改為
adb shell monkey –p android.zhibo8 –-throttle 100 –-pct-touch 50 –-pct-motion 50 –v –v 10 >c:\monkeylog.txt
待Monkey運行結束后,會在指定目錄下生成指定文件。
-
Event percentage分析:
在上述過程中,使用了percent相關命令控制了事件類型,如果我們不指定事件類型。生成的報告中,事件占比大致如下:
// Event percentages:
// 0: 15.0%
// 1: 10.0%
// 2: 2.0%
// 3: 15.0%
// 4: -0.0%
// 5: 25.0%
// 6: 15.0%
// 7: 2.0%
// 8: 2.0%
// 9: 1.0%
// 10: 13.0%
這里將事件分為了10種類型,分別為:
0:觸摸事件百分比,即參數--pct-touch
1:滑動事件百分比,即參數--pct-motion
2:縮放事件百分比,即參數--pct-pinchzoom
3:軌跡球事件百分比,即參數--pct-trackball
4:屏幕旋轉事件百分比,
5:基本導航事件百分比,即參數--pct-nav
6:主要導航事件百分比,即參數--pct-majornav
7:系統事件百分比,即參數--pct-syskeys
8:Activity啟動事件百分比,即參數--pct-appswitch
9:鍵盤翻轉事件百分比,即參數--pct-flip
10:其他事件百分比,即參數--pct-anyevent
更為具體的類型信息,可以查看查看Monkey源碼中的MonkeySourceRandom.java文件。
參考文檔
http://www.cnblogs.com/TankXiao/p/4815134.html
https://www.douban.com/note/257030241/