monkey命令
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命令