Monkey 提供了 11 種不同的事件倔监,包括觸摸事件、滑動(dòng)事件菌仁、縮放事件浩习、軌跡球事件、屏幕旋轉(zhuǎn)事件济丘、基本導(dǎo)航事件谱秽、主要導(dǎo)航事件、切換 Activity 事件、系統(tǒng)按鍵事件疟赊、其它類型事件郊供。通過這些事件來模擬用戶的操作。以下是事件的簡(jiǎn)要介紹:
- --pct-touch 觸摸事件
觸摸事件是指在屏幕某處按下并抬起的操作听绳,就模擬日常手機(jī)使用中的點(diǎn)擊操作颂碘。日志如下:
:Sending Touch (ACTION_DOWN): 0:(161.0,913.0)
:Sending Touch (ACTION_UP): 0:(104.82977,953.52576)
- --pct-motion 滑動(dòng)事件
滑動(dòng)事件是指在屏幕某處按下、隨機(jī)移動(dòng)椅挣、抬起的操作头岔。類似于我們?nèi)粘5幕瑒?dòng)屏幕翻頁的操作。日志顯示與觸摸事件
相似:
:Sending Touch (ACTION_UP): 0:(645.69617,159.27142)
:Sending Touch (ACTION_DOWN): 0:(613.0,529.0)
- --pct-pinchzoom 縮放事件
縮放事件是指在屏幕上的兩處同時(shí)按下鼠证,并同時(shí)移動(dòng)峡竣,最后同時(shí)抬起。就是平時(shí)我們使用時(shí)的放大縮小操作量九。
- --pct-trackball 軌跡球事件
軌跡事件是由一個(gè)或多個(gè)隨機(jī)的移動(dòng)組成的适掰,有時(shí)會(huì)伴隨點(diǎn)擊。早起的智能機(jī)帶有軌跡球荠列,這個(gè)時(shí)間就是軌跡球的操作±嗬耍現(xiàn)在幾乎沒有軌跡球了,但這個(gè)軌跡事件包含了曲線滑動(dòng)事件肌似,如果被測(cè)應(yīng)用程序需要曲線滑動(dòng)才需要設(shè)置該事件百分比费就。
:Sending Trackball (ACTION_MOVE): 0:(-3.0,-4.0)
:Sending Trackball (ACTION_MOVE): 0:(4.0,-5.0)
- --pct-rotation 屏幕旋轉(zhuǎn)事件
這是一個(gè)隱藏事件,用于模擬手機(jī)的橫豎屏切換川队。
:Sending rotation degree=1, persist=true
:Sending rotation degree=0, persist=true
:Sending rotation degree=2, persist=false
該事件由 rotation 事件組成力细, 其中 degree 表示選裝方向, 順時(shí)針旋轉(zhuǎn)固额, 0 表示旋轉(zhuǎn) 90 度眠蚂,1 表示 180 度, 2 表示旋轉(zhuǎn) 270 度斗躏, 3 表示旋轉(zhuǎn) 360 度
- --pct-nav 基本導(dǎo)航事件
基本導(dǎo)航事件是指點(diǎn)擊方向輸入設(shè)備的上逝慧、下、左瑟捣、右按鍵的操作馋艺,現(xiàn)在手機(jī)上很少有這樣的方向鍵了。因此該事件用得相對(duì)很少迈套。
- --pct-majornav 主要導(dǎo)航事件
主要導(dǎo)航事件是指點(diǎn)擊“主要導(dǎo)航”按鈕的操作捐祠。這些按鍵通常會(huì)導(dǎo)致 UI 界面的動(dòng)作。如回退按鍵桑李、菜單按鍵等踱蛀。
- --pct-flip 鍵盤事件
調(diào)整鍵盤事件主要是指一些與鍵盤相關(guān)的操作窿给。如點(diǎn)擊輸入框、鍵盤彈起率拒、點(diǎn)擊輸入框以外區(qū)域崩泡、鍵盤收回等
- --pct-appswitch 切換 Activity 事件
切換 Activity 事件是指在手機(jī)上啟動(dòng)一個(gè) Activity 的操作。 在隨機(jī)的時(shí)間間隔中猬膨, Monkey 將執(zhí)行一個(gè) startActivity() 方法角撞, 作為最大限度上覆蓋被測(cè)包中全部 Activity 的一種方法。 (Activity 這個(gè)概念簡(jiǎn)單但不準(zhǔn)確的理解可以認(rèn)為就是頁面的意思)
如果該事件比例偏低勃痴,你將會(huì)看到大部分時(shí)間的測(cè)試都停留在同一個(gè)頁面上谒所,因此適當(dāng)設(shè)置該事件的比例是很有必要的。
- --pct-syskeys 系統(tǒng)按鍵事件
系統(tǒng)按鍵事件是指點(diǎn)擊系統(tǒng)保留使用的按鍵操作沛申,如點(diǎn)擊 HOME 鍵劣领、返回鍵、音量調(diào)節(jié)鍵等铁材。
- --pct-anyevent 其它類型事件
其它類型事件除了上面的事件以外的其他事件尖淘。它包羅了所有其它類型的事件,如:按鍵著觉、其它不常用的設(shè)備按鈕村生、等等。
參數(shù)列表查看如下饼丘,參數(shù)后面緊接著是百分比 0-100:
事件類別 | 調(diào)整事件說明 |
---|---|
--pct-touch | 調(diào)整觸摸事件 的百分比 |
--pct-motion | 調(diào)整滑動(dòng)事件 的百分比 |
--pct-pinchzoom | 調(diào)整縮放事件 的百分比 |
--pct-trackball | 調(diào)整軌跡事件 的百分比 |
--pct-rotation | 調(diào)整屏幕旋轉(zhuǎn)事件 的百分比 |
--pct-nav | 調(diào)整基本導(dǎo)航事件 的百分比 |
--pct-majornav | 調(diào)整主要導(dǎo)航事件 的百分比 |
--pct-flip | 調(diào)整鍵盤事件 的百分比 |
--pct-syskeys | 調(diào)整系統(tǒng)按鍵事件 的百分比 |
--pct-appswitch | 調(diào)整啟動(dòng)Activity事件 的百分比 |
--pct-anyevent | 調(diào)整其它類型事件 的百分比 |
示例:
# 單個(gè)參數(shù)設(shè)置百分比
adb shell monkey -p com.huomaotv.mobile --pct-appswitch 20 10000
# 多個(gè)參數(shù)設(shè)置百分比
adb shell monkey -p com.huomaotv.mobile --pct-appswitch 20 --pct-rotation 20 --pct-touch 30 --pct-motion 20 10000
注意:
參數(shù)后面緊接百分比 梆造,百分比的總量不能大于 100%
在實(shí)際工作中,如果簡(jiǎn)單跑一下穩(wěn)定性沒有必要修改這些參數(shù)葬毫。如果想測(cè)試更精確一些,讓 monkey 測(cè)試過程中減少一些無效的事件屡穗,可以根據(jù)項(xiàng)目 App 的特性調(diào)整事件的比例贴捡。
比如常見的應(yīng)用中觸摸和滑動(dòng)的操作肯定是最頻繁的,那么相對(duì)可以提高這兩種事件的比例村砂;或者如游戲視頻類的 App烂斋,會(huì)存在橫豎屏切換的操作,就適當(dāng)增加屏幕旋轉(zhuǎn)事件的比例础废。
# 觸摸 40%汛骂,滑動(dòng) 25%,頁面切換 10%评腺,屏幕旋轉(zhuǎn) 5%
adb shell monkey -p com.xxx.xxx --pct-touch 40 --pct-motion 25 --pct-appswitch
10 --pct-rotation 5 50000