一、Monkey測試簡介
Monkey通過模擬用戶觸摸屏幕、滑動Trackball、按鍵等程序來對設備上的程序進行壓力測試,檢測程序多久會發生異常。
一般異常分為以下三種:無響應(ANR)、奔潰(crash)、閃退。奔潰和閃退的區別在於前者有提示框,而后者沒有,直接跳到系統桌面上。
二、Monkey常用場景命令
● 參數: -p
用於約束限制,指定一個或多個包。設置后則系統只啟動指定的APP,不指定包則會啟動系統內的所有APP.
指定一個包:adb shell monkey -p com.moonbasa 1000
指定多個包:adb shell monkey -p com.moonbasa -p com.moonbasa.taylorsage 1000
不指定包:adb shell monkey 1000
(用monkey模擬1000次隨機用戶事件)
● 參數: -S (同一seed值可重復事件序列,方便復現問題。seed值由測試者自由指定)
用於指定偽隨機數生成器的seed值,如果值相同則2次測試所產生的事件序列也一樣。
1.adb shell monkey -p com.moonbasa -s 188 100
2.adb shell monkey -p com.moonbasa -s 188 100
1,2兩次測試的效果是相同的,因為模擬的用戶操作序列是一樣的。
● 參數: -V
用於指定反饋信息級別(日志詳細程度),總共分為三個級別
-V Level0 缺省值,僅提供啟動提示、測試完成和最終結果等少量信息
-V -V Level1 提供較為詳細的日志,包括每個發送到Activity的事件信息
-V -V -V Level2 最詳細的日志,包括了測試中選中/未選中的Activity信息
例:adb shell monkey -p com.moonbasa -v -v 1000.
(用monkey模擬1000次隨機用戶事件,輸出的日志級別為Level1)
● 參數:--throttle <毫秒>
用於指定用戶操作(事件)間的時延,單位是毫秒
例:adb shell monkey -p com.moonbasa --throttle 3000 1000
(用monkey模擬1000次隨機用戶事件,事件之間有3秒的延遲)
● 參數:--randomize -throttle
事件間插入隨機延遲,范圍為0到throttle設置的值
例:adb shell monkey -p com.moonbasa --throttle 5000 --randomize -throttle 1000
(執行1000次的monkey隨機事件,事件間隔0~5秒)
● 參數:
--pct-{+事件類別}{+事件類別百分比}
參考文獻:https://www.cnblogs.com/bydzhangxiaowei/p/8136491.html
https://blog.csdn.net/u011649536/article/details/45043781