?簡介
前邊幾篇介紹了Monkey以及Monkey的事件,今天就給小伙伴們介紹和分享一下Monkey的參數。
首先我們看一下這幅圖來大致了解一下:
1、Monkey 命令 基本參數介紹
-p <允許的包名列表>?????? ???
用此參數指定一個或多個包。指定包之后,monkey將只允許系統啟動指定的app。如果丌指定包, monkey將允許系統啟動設備中的所有app。??
指定一個包:
adb shell monkey -p com.shjt.map 100
指定多個包:
adb shell monkey -p fishjoy.control.menu –p com.shjt.map 100
-v????????
用亍指定反饋信息級別(信息級別就是日志的詳細程度),總共分3個級別,分別對應的參數如下 表所示:?
Level 0 : adb shell monkey -p com.shjt.map -v 100 // 缺省值,僅提供啟動提示、測試完成和最終結果等少量信息 Level 1 : adb shell monkey -p com.shjt.map -v -v 100 // 提供較為詳細的日志,包括每個發送到Activity的事件信息 Level 2 : adb shell monkey -p com.shjt.map -v -v -v 100 // 最詳細的日志,包括了測試中選中/未選中的Activity信息
-s(隨機數種子)
????????????
用亍指定偽隨機數生成器的seed值,如果seed相同,則兩次Monkey測試所產生的事件序列也相同的。? 示例:
monkey測試1:
adb shell monkey -p com.shjt.map –s 10 100
monkey測試2:
adb shell monkey -p com.shjt.map –s 10 100
--throttle <毫秒>???
?????????
用亍指定用戶操作(即事件)間的時延,單位是毫秒;如果丌指定這個參數,monkey會盡可能快的 生成和發送消息。
示例:
adb shell monkey -p com.shjt.map --throttle 3000 100
2、monkey 參數
2.1參數分類
- 常規類參數
- 事件類參數
- 約束類參數
- 調試類參數
2.2常規類參數
常規類參數包括幫助參數和日志信息參數。幫助參數用于輸出 Monkey命令使用指導;日志信息參數將日志分為三個級別,級別越高,日志的信息越詳細。
1.幫助類參數
monkey -h
?
2.日志級別
$ adb shell monkey -v
-v:打印出日志信息,每個-v將增加反饋信息的級別。-v越多日志信息越詳細,不過目前最多支持3個-v,即:
?
?
2.3事件類參數
事件類參數的作用是對隨機事件進行調控,從而使其遵照設定運行,如設置各種事件的百分比、設置事件生成所使用的種子值等。頻率參數主要限制事件執行的時間間隔。
1.執行指定腳本
$ adb shell monkey -feg: $ adb shell monkey -f /mnt/sdcard/test1
?
2.偽隨機數生成種子值
使用 -s命令可以重復執行之前的偽隨機操作。本身每次執行偽隨機事件操作也會默認生成一個seed值
$ adb shell monkey -seg: $ adb shell monkey -s 666 100
?
3.設置間隔
如果你希望在每一個指令之間加上固定的間隔時間,可以用--throttle(注意,前面是--)命令。
$ adb shell monkey --throttleeg: $ adb shell monkey --throttle 3000 5
--throttle:后面接時間,單位為ms(
?
4.調整觸摸事件百分比
如果你希望調整觸摸事件的百分比,記住使用 --pct-touch。
$ adb shell monkey --pct-touch eg: $ adb shell monkey -v -v --pct-touch 100 200
注意:觸摸事件不單單是按鍵,它泛指發生在某一位置的一個 down-up事件。
?
5.調整手勢事件百分比
$ adb shell monkey --pct-motion eg: $ adb shell monkey -v -v --pct-motion 100 200
?
6.調整應用啟動事件的百分比
如果你希望調整應用啟動事件的百分比,記住使用 --pct-app-switch。
$ adb shell monkey --pct-appswtich
--pct-appswitch:后面接應用啟動事件百分比。
應用啟動事件(即 activity launches)俗稱打開應用,通過調用startActivity()方法最大限度地開啟該package下的所有應用。
?
7.調整屏幕旋轉事件百分比
$ adb shell monkey --pct-rotation
--pct-rotation 后面接屏幕旋轉事件的比例值。
?
8.其他參數
?
2.4約束類參數
1.包約束
-p:后面接一個或多個包名(
$ adb shell monkey -peg: $ adb shell monkey -p com.tal.kaoyan 500 $ adb shell monkey -p com.tal.kaoyan -p com.tencent.mm 500
?
2.activity類約束
如果你希望將 monkey限制在一個或幾個類別中,使用如下命令:
adb shell monkey -c
以下命令表示運行 Intent.CATEGORY_LAUNCHER類別的Activity并發送1000個隨機事件。
$ adb shell monkey -c Intent.CATEGORY_LAUNCHER 1000
?
2.5調試類參數
1.應用程序崩潰后繼續發送事件
如果你希望 monkey在應用程序崩潰后繼續發送事件,則需要用到--ignore-crashes命令
$ adb shell monkey --ignore-crashes
在設置此選項后,當應用程序崩潰或發生失控異常時, monkey將繼續運行直到計數完成。如果不設置此選項,monkey遇到上述崩潰或異常將停止運行。
?
2.超時錯誤繼續發送事件
如果你希望 monkey在任何超時錯誤發生后繼續發送事件,則需要用到--ignore-timeouts命令。
$ adb shell monkey --ignore-timeouts
?
3.應用程序權限錯誤發生后繼續發送事件
如果你希望 monkey在應用程序權限錯誤發生后繼續發送事件,則需要用到--ignore-security-exceptions命令。
$ adb shell monkey --ignore-security-exceptions
?
4.其他
?
3、Monkey參數應用綜合案例
3.1測試場景
測試考研幫 app Android版。測試希望通過Monkey來模擬用戶的隨機操作,檢查被測應用是否會出現異常(應用崩潰或者無響應)。
3.2需求分析
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.
3.3測試命令
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
4、小結
好了,Monkey參數暫且到這里,告一段落,下一篇計劃介紹分享 Monkey的日志管理 ,各位小伙伴敬請期待哈!!!
您的肯定就是我進步的動力。
如果你感覺還不錯,就請鼓勵一下吧!記得點波
?
推薦
?哦!!!(點擊右邊的小球即可)
個人公眾號
微信群
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
