自定義腳本穩定性測試
常規的monkey是執行隨機的事件流,如果想讓monkey測試某個特定的場景,這個時候需要自定義腳本。
用戶需要先筆記好腳本再存放在手機上,通過啟動monkey -f參數調用腳本來執行。
舉個栗子:
啟動淘寶,然后進入到首頁,進行登錄
需求分析:
1.思考步驟怎么進行
2.如何操作元素
3.將步驟轉化為測試腳本
如何獲取元素坐標
最簡單的方法就是打開手機開發者模式“顯示指針位置”,然后在屏幕上操作,導航欄上方就會顯示坐標信息
monkey腳本API介紹
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): 結束獲取幀率
monkey腳本格式
主要包括兩部分,一部分是頭文件信息,一部分是具體的monkey命令
type = raw events //腳本類型
count = 1 //執行腳本次數
speed =1.0 //執行腳本速率
//下面是monkey命令
start data >>
具體的monkey腳本內容
monkeytest.txt
編寫腳本
type = raw events
count = 1
speed = 1.0
#以下是monkey命令
start data >>
#1.啟動app
LaunchActivity(com.taobao.taobao,com.taobao.tao.welcome.Welcome)
UserWait(5000)
#2.點擊我的坐標
Tap(965,1874)
UserWait(3000)
#3.輸入手機號
Tap(175.8,374.7)
DispatchString(13432165487)
UserWait(2000)
#4.輸入密碼
Tap(155.8,501.7)
DispatchString(123456)
UserWait(2000)
#5.點擊登錄按鈕
Tap(521.5,644.7)
執行腳本
腳本先傳到手機設備上,然后再執行
adb push 腳本路徑\monkeytest.txt /sdcard/
adb shell monkey -f /sdcard/monkeytest.txt -v 1