Android SDK中的android調試橋(adb)shell裡,有一個用於測試的工具——monkey。不知道最早monkey這個名字的來曆,不過他確實如同一隻調皮的猴子,在android app裡各種亂按、亂晃、亂摸。
如何使用:進入命令列,來到android SDK的platform-tools目錄下,輸入命令
user@user:~/workspace/android-sdk-linux_x86/platform-tools$ adb shell monkey
即可查看到monkey工具的配置參數的用法。如下:
usage: monkey [-p ALLOWED_PACKAGE [-p ALLOWED_PACKAGE] ...]
[-c MAIN_CATEGORY [-c MAIN_CATEGORY] ...]
[--ignore-crashes] [--ignore-timeouts]
[--ignore-security-exceptions]
[--monitor-native-crashes] [--ignore-native-crashes]
[--kill-process-after-error] [--hprof]
[--pct-touch PERCENT] [--pct-motion PERCENT]
[--pct-trackball PERCENT] [--pct-syskeys PERCENT]
[--pct-nav PERCENT] [--pct-majornav PERCENT]
[--pct-appswitch PERCENT] [--pct-flip PERCENT]
[--pct-anyevent PERCENT]
[--pkg-blacklist-file PACKAGE_BLACKLIST_FILE]
[--pkg-whitelist-file PACKAGE_WHITELIST_FILE]
[--wait-dbg] [--dbg-no-events]
[--setup scriptfile] [-f scriptfile [-f scriptfile] ...]
[--port port]
[-s SEED] [-v [-v] ...]
[--throttle MILLISEC] [--randomize-throttle]
COUNT
在執行操作命令前,可以鍵入
user@user:~/workspace/android-sdk-linux_x86/platform-tools$ adb shell
如此,便進入了adb shell ,可以直接輸入monkey 來執行命令。否則,每次都需要輸入adb shell monkey 進行操作。
實戰
1. just for fun
最簡單的入手方法是:
adb shell monkey -p com.snake -v 100
表示對 -p 後的軟體包的app 進行100 次完全隨機的測試。 monkey會隨機的產生100次事件。
輸出中將依次列出所產生的隨機事件。
2.針對性測試
當然,不用app有不同的側重點,我們需要測試的重心也就不一樣,這時候,我們或許需要調整隨機事件中不同事件的比例。
--pct就是這個用處。比如:" --pct-touch 50 % " 表示產生的隨機事件中觸摸事件佔有50% ,而" --pct-syskeys 10% "則表示產生的隨機事件中按鍵事件佔10%。
3. 調試分析
隨著測試的深入,我們需要忽略app的崩潰,而不是停住,monkey同樣能做到。
--ignore-crashes
甚至,它還能產生profiling報告!
--hprof
還有更多的調試功能,見下表
該表對monkey 的用法做了較清晰而翔實的描述。