monkey入門-04自定義腳本

自定義腳本較爲雞肋,用的很少,依賴於座標點點擊,更換手機或者模擬器就可能無法運行。

常規Monkey測試執行的是隨機的事件流,但如果只是想讓Monkey測試某個特定場景這時候就需要用到自定義腳本了,Monkey支持執行用戶自定義腳本的測試,用戶只需要按照Monkey腳本的規範編寫好腳本,存放到手機上,啓動Monkey通過-f 參數調用腳本即可。

獲取元素座標點位置

Monkey腳本只能通過座標的方式來定位點擊和移動事件的屏幕位置,這裏就需要提前獲取座標信息。獲取座標信息的方法很多,最簡單的方法就是打開手機中的開發人員選項,打開“顯示指針位置”。隨後,在屏幕上的每次操作,在導航欄上都會顯示座標信息。

 

Monkey腳本API簡介

LaunchActivity(pkg_name, cl_name):啓動應用的Activity。參數:包名和啓動的Activity。

Tap(x, y, tapDuration): 模擬一次手指單擊事件。參數:x,y爲控件座標,tapDuration爲點擊的持續時間,此參數可省略。

UserWait(sleepTime): 休眠一段時間

DispatchPress(keyName): 按鍵。參數: keycode。 RotateScreen(rotationDegree, persist): 旋轉屏幕。 參數:rotationDegree爲旋轉角度, e.g. 1代表90度;persist表示旋轉之後是否固定,0表示旋轉後恢復,非0則表示固定不變。

DispatchString(input): 輸入字符串。

DispatchFlip(true/false): 打開或者關閉軟鍵盤。

PressAndHold(x, y, pressDuration): 模擬長按事件。

Drag(xStart, yStart, xEnd, yEnd, stepCount): 用於模擬一個拖拽操作。

PinchZoom(x1Start, y1Start, x1End, y1End, x2Start, y2Start, x2End, y2End, stepCount): 模擬縮放手勢。

LongPress(): 長按2秒。

DeviceWakeUp(): 喚醒屏幕。

PowerLog(power_log_type, test_case_status): 模擬電池電量信息。

WriteLog(): 將電池信息寫入sd卡。

RunCmd(cmd): 運行shell命令。

DispatchPointer(downtime,eventTime,action,x,yxpressure,size,metastate,xPrecision,yPrecision,device,edgeFlags): 向指定位置,發送單個手勢。

DispatchPointer(downtime,eventTime,action,x,yxpressure,size,metastate,xPrecision,yPrecision,device,edgeFilags): 發送按鍵消息。

LaunchInstrumentation(test_name,runner_name): 運行一個instrumentation測試用例。

DispatchTrackball: 模擬發送軌跡球事件。

ProfileWait: 等待5秒。

StartCaptureFramerate(): 獲取幀率。

EndCaptureFramerate(input): 結束獲取幀率。

 

Monkey腳本格式

Monkey腳本主要包含兩部分,一部分是頭文件信息,一部分是具體的monkey命令。

type = raw events  
count = 1  
speed = 1.0  
//下面爲monkey命令
start data >>   
具體的monkey腳本內容  

例子:  

#頭文件信息 注意“=”兩邊預留空格

type = raw events 

count = 1

speed = 1.0

#啓動測試
start data >>

LaunchActivity(包名,Activity名)
UserWait(2000)

Tap(624,900,1000) #點擊取消升級
UserWait(2000)

Tap(806,64,1000) #點擊跳過
UserWait(2000)

Tap(217,378,1000) #點擊用戶名輸入框
DispatchString(zxw1234)
UserWait(2000)

Tap(197,461,1000) #點擊密碼輸入框
DispatchString(zxw123456)
UserWait(2000)

Tap(343,637,1000) #點擊登錄按鈕

執行腳本

腳本編寫完成後,傳到手機設備上,然後執行。

adb push 路徑 /sdcard

adb shell monkey -f /sdcard/文件名 -v 1
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章