1. 程式人生 > >monkey命令

monkey命令

事件 正常 編寫 屏幕 界面 eve 表示 test wake

monkey 命令

monkey不單只能做穩定性測試,還可以用來進行自動化測試,不過,因其提供的命令比較少,而且是通過屏幕分辨率進行定位元素,所以,monkey編寫的自動化測試腳本的兼容性不是很好,也就是說,如果在同一個屏幕分辨率下,可以正常運行。

但是,如果換一個分辨率的設備,有可能導致定位不到之前的元素,因為,坐標位置發生了改變。下面是一下,monkey做自動化測試腳本開發時要用到的常用命令:

DispatchPointer 命令

該命令用於向一個坐標點(x坐標,y坐標)發送手勢消息

命令格式:DispatchPointer(long downTime,long eventTime, int action ,float x, float y ,float pressure ,float size , int metaState,float xPrecision, float yPrecision, int device, int edgeFlags);

參數介紹:

downTime:表示鍵最初被按下的時間

eventTime:表示事件發生的時間

action:表示發送消息的類型;0(按下),1(擡起),2(移動)

x:表示x坐標軸

y:表示y坐標軸

pressure:表示當前事件的壓力,0(根本沒有壓力),1(正常壓力)

size:表示觸摸的近似值,範圍0~1.

metaState:表示當前按下的meta鍵的標識,meta鍵指的是ALT, SHIFT, CAPS_LOCK

xPrecision:表示X坐標精確值

yPrecision:表示y坐標精確值

device:表示事件來源

edgeFlags:表示邊緣的指示,如果有的話,在該位置觸發位移事件

通常,我們只需要設置前5個關鍵參數,其他的幾個參數可以設置為0.

格式:

DispatchPointer(0,0,0,x,y,0,0,0,0,0,0,0) 按下操作,坐標點(x,y)

DispatchPointer(0,0,1,x,y,0,0,0,0,0,0,0) 擡起操作,坐標點(x,y)

DispatchPointer(0,0,2,x,y,0,0,0,0,0,0,0) 移動操作,坐標點(x,y)

例子:

DispatchPointer(0,0,0,100,236,0,0,0,0,0,0,0)

DispatchPointer(0,0,2,100,685,0,0,0,0,0,0,0)

DispatchPointer(0,0,1,100,685,0,0,0,0,0,0,0)

表示按下坐標(100,236)移動到坐標(100,685)然後擡起操作

DispatchTrackball命令

該命令用於向一個坐標點發送跟蹤消息

命令格式:DispatchTrackball(long downTime,long eventTime,iint action,float x,float y,float presure,float size,int metaState ,float xPrecision ,float yPrecision, int device,int edgeFlags)

該命令的使用和參數運用於DispatchPointer是一樣

DispatchKey 命令

該命令用於發送按鍵消息給指定的設備或者模擬器

命令格式:DispatchKey(long downTime, long eventTime, int action,int code,int repeat, int metaState,int device,int scancode)

DispatchKey(0,0,0,29,0,0,0,0)

DispatchKey(0,0,1,29,0,0,0,0)

code值為29,表示“KEYCODE_a”,意思是按下a鍵,然後擡起,也就是:輸入字母a,也可以換種方法寫:

DispatchPress(KEYCODE_a) 這兩個的效果是一樣的

DispatchFlip命令

該命令用於打開或關閉軟盤

命令格式:DispatchFlip(booleam keyboardOpen)

當keyboardOpen的指為true時,表示打開軟盤,為false時,表示為關閉軟盤

LaunchActivity命令

該命令用於啟動任意引用的一個活動界面

命令格式:LaunchActivity(String pkg_name , String cl_name)

參數介紹:

pkg_name:是要啟動的應用包名

cl_name:是要啟動的活動名稱

LaunchActivity(com.test.app,com.test.swh.activity.WelcomeActivity)

表示啟動com.test.app包中的com.pttz.swh.activity.WelcomeActivity應用活動

LaunchInstrumentation 命令

該命令用於運行一個儀表盤測試用例

命令格式:LaunchInstrumentation(test_name,runner_name)

參數介紹:test_name為要運行的測試用例名稱,runner_name為運行測試用例的類名

UserWait 命令

該命令用於讓腳步等待一段時間

命令格式:UserWait(long sleeping)

sleeping單位為毫秒

UserWait(5000)表示等待5秒

RunCmd 命令

該命令用於在設備上運行shell命令

命令格式:RunCmd(cmd)

參數介紹:cmd為要執行的shell命令

Tap 命令

該命令用於模擬一次手指單擊事件

命令格式:Tap(x,y,tapDuration)

參數介紹:x,y為坐標的橫縱坐標值,tapDuration為可選項,表示單擊的持續時間

ProfileWait 命令

該命令用於等待5秒鐘

命令格式:ProfileWait()

DeviceWakeUp 命令

該命令用於喚醒設備並解鎖

命令格式:DeviceWakeUp()

DispatchString 命令

該命令用於向shell輸入一個字符串

命令格式:DispatchString(input)

參數介紹:input為要輸入的字符串內容

DispatchString(hello)

示例腳本:

type=raw events
count=100
speed=1.0
start data >>

LaunchActivity(com.test.aqb,com.test.swh.activity.WelcomeActivity)
UserWait(3000)

//啟動app後等待3秒

DispatchPointer(0,0,0,30,1050,0,0,0,0,0,0,0)
DispatchPointer(0,0,1,30,1050,0,0,0,0,0,0,0)

//點擊輸入框

DispatchPress(KEYCODE_h)
DispatchPress(KEYCODE_o)
DispatchPress(KEYCODE_l)
DispatchPress(KEYCODE_l)
DispatchPress(KEYCODE_e)

//輸入hello內容

... ...

monkey命令