1. 程式人生 > >Monkey自定義指令碼測試

Monkey自定義指令碼測試

自定義指令碼的穩定性測試

常規Monkey測試執行的是隨機的事件流,但如果只是想讓Monkey測試某個特定場景這時候就需要用到自定義指令碼了,Monkey支援執行使用者自定義指令碼的測試,使用者只需要按照Monkey指令碼的規範編寫好指令碼,存放到手機上,啟動Monkey通過-f 引數呼叫指令碼即可。

測試案例

啟動考研幫app3.1.0,然後跳過升級提示和引導頁面,進入到登入介面並輸入使用者名稱密碼進行登入。 需求分析

  • • 從使用者角度來思考步驟該怎樣進行?
  • • 要操作的元素該如何定位?
  • • 怎樣將操作步驟轉化為測試指令碼?

獲取元素座標點位置

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

Monkey指令碼API簡介

1、LaunchActivity(pkg_name, cl_name):啟動應用的Activity。引數:包名和啟動的Activity。 2、Tap(x, y, tapDuration): 模擬一次手指單擊事件。引數:x,y為控制元件座標,tapDuration為點選的持續時間,此引數可省略。 3、UserWait(sleepTime): 休眠一段時間 4、DispatchPress(keyName): 按鍵。引數: keycode。 5、RotateScreen(rotationDegree, persist): 旋轉螢幕。 引數:rotationDegree為旋轉角度, e.g. 1代表90度;persist表示旋轉之後是否固定,0表示旋轉後恢復,非0則表示固定不變。 6、DispatchString(input): 輸入字串。 7、DispatchFlip(true/false): 開啟或者關閉軟鍵盤。 8、PressAndHold(x, y, pressDuration): 模擬長按事件。 9、Drag(xStart, yStart, xEnd, yEnd, stepCount): 用於模擬一個拖拽操作。 10、PinchZoom(x1Start, y1Start, x1End, y1End, x2Start, y2Start, x2End, y2End, stepCount): 模擬縮放手勢。 LongPress(): 長按2秒。 11、DeviceWakeUp(): 喚醒螢幕。 12、PowerLog(power_log_type, test_case_status): 模擬電池電量資訊。 13、WriteLog(): 將電池資訊寫入sd卡。 14、RunCmd(cmd): 執行shell命令。 15、DispatchPointer(downtime,eventTime,action,x,yxpressure,size,metastate,xPrecision,yPrecision,device,edgeFlags): 向指定位置,傳送單個手勢。 16、DispatchPointer(downtime,eventTime,action,x,yxpressure,size,metastate,xPrecision,yPrecision,device,edgeFilags): 傳送按鍵訊息。 17、LaunchInstrumentation(test_name,runner_name): 執行一個instrumentation測試用例。 18、DispatchTrackball: 模擬傳送軌跡球事件。 19、ProfileWait: 等待5秒。 20、StartCaptureFramerate(): 獲取幀率。 21、EndCaptureFramerate(input): 結束獲取幀率。

Monkey指令碼格式

Monkey指令碼主要包含兩部分,一部分是標頭檔案資訊,一部分是具體的monkey命令。 type = raw events count = 1 speed = 1.0

//下面為monkey命令 start data >> 具體的monkey指令碼內容 編寫指令碼 kyb.txt #標頭檔案資訊

type = raw events (注意:“=”兩邊預留空格,否則會報錯) count = 1 speed = 1.0

#啟動測試 start data >>

LaunchActivity(com.tal.kaoyan,com.tal.kaoyan.ui.activity.SplashActivity) 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 C:\Users\Shuqing\Desktop\kyb1.txt /sdcard(指令碼路徑改為你自己的儲存路徑)

adb shell monkey -f /sdcard/kyb1.txt -v 1

執行,就完成了第一個你的第一個自動化測試指令碼✌️