天天看點

玩轉Android monkey之多參數實戰

monkey設定間隔時間

參數throttle用來控制執行速度,如果不加我們通過上次的執行發現速度比較快,也看不清。

文法:adb shell monkey -p 包名 --throttle 設定每次随機事件的時間間隔

(毫秒)随機事件次數

moneky seed種子

seed種子是幹嘛的呢?很好了解,如果你想使得兩次指令的執行軌迹一樣,那就加上這個參數。比如,第一次你使用發現了一個bug,現在想重制一下,如果不加seed就是随機的,可能無法重制,加上seed就可以了。

PS:每次執行時初始界面要一緻

文法:adb shell monkey -p 包名 --throttle 執行速度 -s seed種子 随機事件數

monkey指定某個動作

如果想使用monkey指令來做某一個動作,而不是N個動作混雜的,那就要通過參數來指定ta的動作,比如--pct-touch點選(觸摸)動作。

文法:adb shell monkey -v -p 包名 --pct-touch 執行touch動作的百分比 随機事件次數

其中-v代表檢視詳細的結果,我們可以看到0代表touch百分比為100%執行,其餘為0%。

思考:如果不加--pct-touch執行該指令會是什麼樣的結果呢?

這裡大家可能會問到1-10代表啥呢?其實代表的是不同的操作動作,這裡來list一下:

1:手勢 --pct-motion

2:縮放 --pct-pinchzoom

3:軌迹球 --pct-trackball

4:螢幕旋轉 --pct-rotation

5:基本導航事件,比如手機上的上、下、左、右的操作 --pct-nav

6:主導航事件,比如傳回鍵、菜單鍵 --pct-majornav

7:系統導航事件,比如手機上的home鍵、撥号鍵、音量鍵等 --pct-syskeys

8:切換activity --pct-appswitch

9: 鍵盤翻轉事件,舉個場景就知道了,類似點選輸入框,鍵盤彈起,點選其他區域,鍵盤收起 --pct-flip

10:其他事件 --pct-anyevent

monkey忽略崩潰和逾時

為什麼要有着兩個參數呢?很簡單,我們在使用app的時候經常會出現逾時、卡死的狀況,一旦出現這樣的情況,monkey是不知道怎麼辦的!是以,需要我們給他指令才行, 一般就是給兩個參數,忽略逾時和忽略崩潰。

l 忽略逾時參數:--ignore-timeouts

l 忽略崩潰(異常)參數:--ignore-crashes

文法:adb shell monkey -v -p 包名 --pct-touch 100 --ignore-timeouts --ignore-crashes 随機事件次數

PS:在實際操作過程中除了上述兩種情況外,可能還會出現ANR的問題,如果出現那就要找到對應的log,然後交給開發去解決

本文轉自 小強測試幫 51CTO部落格,原文連結:http://blog.51cto.com/xqtesting/2050469,如需轉載請自行聯系原作者