Monkey命令
(1)運行cmd,進入sdk的tools目錄下:cd d:softwaresdk ools
(2)打開模擬器:emulator -avd 模擬器名稱
(3)測試是否已經連接設備成功:adb devices
(4)安裝測試的app:adb install 包名(包含包名存放的路徑)
(5)對某個包名即app進行偽隨機事件測試:adb shell monkey -p 包名 偽隨機次數
參數-p 包名:指定測試的app的包名,如果不指定則對手機進行偽隨機事件測試
(6)參數:-v 指的是Monkey測試時打印log級別 -v 日志詳細程度
Level 0 : adb shell monkey -p包名 -v 100 最簡單(默認),除了啟動、測試完成和最終結果外只提供較少的信息。
Level 1 : adb shell monkey -p包名 -v -v 100 提供了較為詳細的測試信息,如逐個發送到Activity的事件信息
Level 2 : adb shell monkey -p包名 -v -v -v 100提供了更多的設置信息,如測試中選中或未選中的Activity信息
比較常用的是-v -v -v,一般會保存到指定文件中供開發人員查找bug原因時使用
(7)參數-s(隨機數種子) adb shell monkey -p 包名 -s seedvalue 隨機次數
通過運行偽隨機事件后發生Crash或者ANR的事件,重現剛剛的隨機序列,可以通過運行后產生的log信息尾部取Seed的值,然后運行帶-s的命令,可以重現問題。
(8)參數--ignore
--ignore-crashes:通常,應用發生崩潰或異常時Monkey會停止運行。如果設置此項,Monkey將繼續發送事件給系統,直到事件計數完成。
adb shellmonkey -p包名 --ignore-crashes 1000
測試過程中即使程序崩潰,Monkey依然會繼續發送事件直到事件數目達到1000為止
--ignore-security-exception
adb shellmonkey -p 包名 --ignore-security-exception 1000
作用:通常,當程序發生許可錯誤(例如啟動一些需要許可的Activity)導致的異常時,Monkey將停止運行。設置此項,Monkey將繼續發送事件給系統,直到事件計數完成。
--ignore-timeouts
adb shellmonkey -p包名 --ignore-timeouts 1000
作用:通常,應用程序發生任何超時錯誤(如“Application Not responding”對話框)Monkey將停止運行,設置此項,Monkey將繼續發送事件給系統,直到事件計數完成。
(9)參數--throttle <毫秒> :adb shell monkey -p cn.emoney.acg –throttle 5000 100
指定用戶操作(即事件)間的時延,單位是毫秒;如果不指定這個參數,monkey會盡可能快的生成和發送消息。
(10)百分比,參數--pct :--pct-{+事件類別}{+事件類別百分比},所有事件的百分比需加起來等于100
例如:adb shell monkey -p包名 --pct-touch 10 1000: touch事件百分之10
--pct-touch:觸摸事件
--pct-motion:動作事件,motion事件是由屏幕上某處一個down事件、一系列偽隨機的移動事件和一個up事件組成
--pct-trackball:軌跡球事件
--pct-nav:基本導航事件
--pct-majornav:主要導航事件
--pct-syskeys:系統按鍵事件
--pct-appswitch:應用啟動事件
--pct-anyevent 其他不常用的按鍵比例的設置,不常用
(11)參數: --kill-process-after-error :adb shellmonkey -p包名 --kill-process-after-error 1000
用于指定當應用程序發生錯誤時,是否停止其運行。如果指定此參數,當應用程序發生錯誤時,應用程序停止運行并保持在當前狀態
(注意:應用程序僅是靜止在發生錯誤時的狀態,系統并不會結束該應用程序的進程)。
(12)保存log信息,在命令后面加上>文件名(包含文件路徑):adb shell monkey -p包名 -v 100>D:log.txt
在保存的log文件最開始都會顯示Monkey執行的seed值、執行次數和測試的包名。
查看Monkey測試中是否出現了ANR或者異常,快速定位到關鍵事件信息 。查看Monkey里面出錯前的一些事件動作,并手動執行該動作,找出重現步驟,提bug給開發。
無響應問題(ANR問題):在日志中搜索“ANR ”
崩潰問題:在日志中搜索“Exception”
ForceClosed 和其它異常退出信息:搜索"Fatal" 關鍵詞
(13)停止命令;
adb shell
進入shell命令環境之后再輸入ps|grep monkey,查看進程的pid,然后再將進程殺死
kill pid
總結
- 上一篇: 如何使用Key User Tool扩展S
- 下一篇: SAP GUI和Windows注册表