參數分類
- 正常類參數
- 事件類參數
- 限制類參數
- 調試類參數
正常類參數
正常類參數包括幫助參數和日志資訊參數。幫助參數用于輸出Monkey指令使用指導;日志資訊參數将日志分為三個級别,級别越高,日志的資訊越詳細。
1.幫助類參數
monkey -h
2.日志級别
shell
-v:列印出日志資訊,每個-v将增加回報資訊的級别。-v越多日志資訊越詳細,不過目前最多支援3個-v,即:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5yN2AzM1cTM1ATM3Q2N4EDOlRDNmFWO4gTZ2U2YmNGZi9CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
事件類參數
事件類參數的作用是對随機事件進行調控,進而使其遵照設定運作,如設定各種事件的百分比、設定事件生成所使用的種子值等。頻率參數主要限制事件執行的時間間隔。
1.執行指定腳本
shell
2.僞随機數生成種子值
使用 -s指令可以重複執行之前的僞随機操作。本身每次執行僞随機事件操作也會預設生成一個seed值
shell monkey -s
3.設定間隔 如果你希望在每一個指令之間加上固定的間隔時間,可以用--throttle(注意,前面是--)指令。
shell
--throttle:後面接時間,機關為ms(),表示事件之間的固定延遲(即執行每一個指令間隔的時間),若不接該選項,monkey将不會延遲。
4.調整觸摸事件百分比
如果你希望調整觸摸事件的百分比,記住使用--pct-touch。
shell
--pct-touch:後面接觸摸事件百分比
注意:觸摸事件不單單是按鍵,它泛指發生在某一位置的一個down-up事件。
5.調整手勢事件百分比
shell
6.調整應用啟動事件的百分比
如果你希望調整應用啟動事件的百分比,記住使用--pct-app-switch。
shell
--pct-appswitch:後面接應用啟動事件百分比。
應用啟動事件(即activity launches)俗稱打開應用,通過調用startActivity()方法最大限度地開啟該package下的所有應用。
7.調整螢幕旋轉事件百分比
shell
--pct-rotation 後面接螢幕旋轉事件的比例值。
8.其他參數
限制類參數
1.包限制
-p:後面接一個或多個包名(),如果應用需要通路其他包裡的Activity,那相關的包也需要在此同時指定。如果不指定任何包,monkey将允許系統啟動全部包裡的Activity。
p
2.activity類限制
如果你希望将monkey限制在一個或幾個類别中,使用如下指令:
shell monkey -
以下指令表示運作Intent.CATEGORY_LAUNCHER類别的Activity并發送1000個随機事件。
shell
調試類參數
1.應用程式崩潰後繼續發送事件
如果你希望monkey在應用程式崩潰後繼續發送事件,則需要用到--ignore-crashes指令
shell
在設定此選項後,當應用程式崩潰或發生失控異常時,monkey将繼續運作直到計數完成。如果不設定此選項,monkey遇到上述崩潰或異常将停止運作。
2.逾時錯誤繼續發送事件
如果你希望monkey在任何逾時錯誤發生後繼續發送事件,則需要用到--ignore-timeouts指令。
shell
--ignore-timeouts:在設定此選項後,當應用程式發生任何逾時錯誤(如ANR,即Application Not Responding)時,monkey将繼續運作直到計數完成。如果不設定此選項,monkey遇到此類逾時對話框将停止運作。
3.應用程式權限錯誤發生後繼續發送事件
如果你希望monkey在應用程式權限錯誤發生後繼續發送事件,則需要用到--ignore-security-exceptions指令。
shell
--ignore-security-exceptions:在設定此選項後,當應用程式發生任何權限錯誤(如啟動一個需要某些權限的Activity)時,monkey将繼續運作直到計數完成。如果不設定此選項,monkey遇到此類權限錯誤将停止運作。
4.其他
Monkey參數應用綜合案例
測試場景
測試考研幫app Android版。測試希望通過Monkey來模拟使用者的随機操作,檢查被測應用是否會出現異常(應用崩潰或者無響應)。
需求分析
1、測試是指定應用,是以需要使用-p指定被測app包名:com.tal.kaoyan
2、這個測試的目的是希望模拟使用者操作,是以需要讓Monkey執行的事件盡可能地接近使用者的正常操作,這樣才可以最大限度地發現使用者使用過程中可能出現的問題。是以需要對Monkey執行的事件百分比做一些調整:
觸摸事件和手勢事件是使用者最常見的操作,是以通過--pct-touch和--pct-motion将這兩個事件的占比調整到40%與25%;目标應用包含了多個Activity,為了能覆寫大部分的Activity,是以通過--pct-appswitch将Activity切換的事件占比調整到10%;被測應用在測試中出現過不少橫豎屏之間切換的問題,這個場景也必須關注,是以通過--pct-rotation把橫豎屏切換事件調整到10%。
3、使用-s參數來指定指令執行的seed值 Monkey會根據seed值來生成對應事件流,同一個seed生成的事件流是完全相同的。這裡指定了seed值,是為了測試發現問題時,便于進行問題複現。
4、使用--throttle參數來控制Monkey每個操作之間的時間間隔 指定操作之間的時間間隔,一方面是希望能更接近使用者的操作場景,正常使用者操作都會有一定的時間間隔;另一方面也是不希望因為過于頻繁的操作而導緻系統崩潰,尤其是在比較低端的手機上執行測試時。是以通過--throttle設定Monkey每個操作固定延遲0.4秒。
5、使用--ignore-crashs和--ignore-timeouts參數使Monkey遇到意外時能繼續執行 在執行Monkey測試時,會因為應用的崩潰或沒有響應而意外終止,是以需要在指令中增加限制參數--ignore-crash和--ignore-timeouts,讓Monkey在遇到崩潰或沒有響應的時候,能在日志中記錄相關資訊,并繼續執行後續的測試。
6、使用-v指定log的詳細級别 Monkey的日志輸出有3個級别:日志的級别越高,其詳細程度也越高。為了友善問題的定位,這裡将日志設為 -v -v.
測試指令
adb shell monkey -p com.tal.kaoyan
--pct-touch 40 --pct-motion 25
--pct-appswitch 10
--pct-rotation 5
-s 1666 --throttle 400
--ignore-crashes
--ignore-timeouts
-v -v 200
更多幹貨
- Android 測試工具——Monkey事件與日志
- Android 測試工具——Monkey簡介
- ATX2 遠端裝置管理平台入門進階應用
- ATX2 iOS裝置管理平台搭建
- Android&iOS App元素定位利器——Macaca Inspector
- Appium連續滑動操作——九宮格滑動
- Appium Android Toast元素識别
- Android H5元素定位
- Mac 環境Appium自動化測試環境搭建
- 衆裡尋他千百度—Appium Android 元素定位方式
- Android自動化測試裝置彈窗處理
- Ubuntu+Docker+STF環境搭建
- Mac OS環境搭建STF
- Python自動化日志收集