MonkeyScript的簡單使用

MonkeyScript的簡單使用

1、 什麼是MonkeyScript

MS 是官方提供的,除了像猴子同樣隨機亂點以外,還能夠經過編寫腳本的形式,完成一系列固定的操做。MS 提供一整套完善的 API 來進行支持,主要仍是基於座標點的操做,包含經常使用的:點擊、長按、輸入、等待等操做。shell

 

2、 MonkeyScript的使用app

  1. 編寫MonkeyScript的測試腳本。

MS腳本只要是文本便可,不關心後綴是什麼,因此編寫時不要添加後綴,保存文本格式便可。測試

 

MS 腳本雖然有一些指定的 API ,可是也有一些固定的腳本頭,須要寫在腳本的最前面。spa

 

type=user.net

count = 1日誌

speed = 1.0code

start data >>blog

 

在腳本中,腳本頭是一直不變更的,爲了不寫錯,能夠直接複製粘貼最保險。在 start data>> 以後就能夠正式開始編寫 monkey 腳本了,在腳本中,使用 # 號,對單行進行註釋。事件

 

MonkeyScript是須要指定Activity(當前app展現的界面)的,獲取當前指定界面Activity名稱的指令爲adb shell dumpsys activity | grep mFocused。ip

 

下面以測試登陸功能爲例:

 

LaunchActivity(Activity)

UserWait(1000)

 

DispatchPointer(0,0,0,303,312,0,0,0,0,0,0,0)

DispatchPointer(0,0,1,303,312,0,0,0,0,0,0,0)

UserWait(1000)

 

 

 

DispatchString(1234566)

UserWait(100)

 

//輸入密碼

DispatchPointer(0,0,0,345,393,0,0,0,0,0,0,0)

DispatchPointer(0,0,1,345,393,0,0,0,0,0,0,0)

UserWait(100)

 

DispatchString(1234567)

UserWait(1000)

 

//點擊空白處讓鍵盤消失

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

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

UserWait(1000)

 

//點擊登陸按鈕

DispatchPointer(0,0,0,361,507,0,0,0,0,0,0,0)

DispatchPointer(0,0,1,361,507,0,0,0,0,0,0,0)

UserWait(3000)

腳本解釋:

首先啓動你要測試的界面,此處爲登陸界面,登陸界面有三個控件,用戶名的textField,密碼的textField,和登陸按鈕。

LaunchActivity()

做用爲來到登陸界面

UserWait(1000)

等待1秒之後執行下一個操做

DispatchPointer(0,0,0,303,312,0,0,0,0,0,0,0)

DispatchPointer(0,0,1,303,312,0,0,0,0,0,0,0)

DispatchPointer點擊用戶名的textField,只需關注3,4,5這三個參數便可,第三個參數爲0表示點擊了textField ,爲1表示鬆開了textField,4,5兩個參數分別爲用戶名textField 的x,y座標。

DispatchString(123456)

在用戶名的textField中輸入123456用戶名

按照上面的操做在密碼的textField輸入密碼,點擊登陸按鈕,整改登陸測試就完成了,若是須要繼續測試登陸後的界面則須要重新啓動新的Activity。

//登陸成功後來到首頁點擊發布做業功能(具體什麼功能和第4,5個參數設置的值有關)

LaunchActivity(Activity)

UserWait(1000)

 

DispatchPointer(0,0,0,650,182,0,0,0,0,0,0,0)

DispatchPointer(0,0,1,650,182,0,0,0,0,0,0,0)

UserWait(1000)

 

Drag(500,1500,500,500,12)
#向上滑動

將寫好的腳本保存到本地。

 

2. Monkey 啓動 MonkeyScript 的命令以下:

adb shell monkey -f <MonkeyScript> <EventCount>

 

<MonkeyScript>指你編寫的MonkeyScript腳本,

 

<EventCount>指Monkey事件,例如執行次數,日誌詳情等。

 

具體指令:

  1. adb shell mkdir /sdcard/script 在設備上建立script文件夾用於存放腳本
  2. 將本地腳本文件push到設備中上面建立的文件夾中。例如adb push /Users/userName/Desktop/testLogin空格/sdcard/script,/Users/userName/Desktop/testLogin就是你腳本在本地的存放路徑。
  3. 執行adb shell monkey -f /sdcard/script/你的腳本名稱 –v –v 10 >C:\monkey.txt便可,>C:\monkey.txt爲日誌輸出路徑。

 

 其餘簡介

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

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

DispatchPress(keyName): 按鍵。參數: keycode。 詳細的Android Keycode列表: http://blog.csdn.net/feizhixuan46789/article/details/16801429

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

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

LongPress(): 長按2秒。

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

DispatchString(input): 輸入字符串。

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

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

UserWait(sleepTime): 休眠一段時間

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): 結束獲取幀率。

相關文章
相關標籤/搜索