Adnroid-Monkey Script 壓力測試(一)

Android-Monkey 壓力測試
Adnroid-UI Automator Viewer 的使用
Adnroid-Monkey Script 壓力測試(一)
Adnroid-Monkey Script 壓力測試(二)
Android-MonkeyRunner 壓力測試(一)
Android-MonkeyRunner 壓力測試(二)
Android-MonkeyRunner API 參考
Android-Monkey 源代碼參考

1. Monkey Script 介紹

Monkey Script 是用 Monkey 來進行壓力測試時執(zhí)行特定操作時的命令(函數(shù))集合,它只能通過屏幕坐標的方式執(zhí)行特定事件,如:點擊、長按、拖動等。
如果它要對屏幕上的某個 View 執(zhí)行點擊事件,就必須知道該 View 在手機屏幕上的坐標。
因為使用 Monkey 對 App 進行壓力測試時,Monkey 的操作是隨機的。
Monkey Script 可以使 Monkey 執(zhí)行特定的操作對 App 進行壓力測試。
如果要執(zhí)行更高級的壓力測試操作,如:截屏、彈窗、安裝Apk等,就要用到功能更加強大的 MonkeyRunner。

手機屏幕上View坐標獲取工具(UI Automator Viewer) 它在 Android ADK 的 tools\bin 目錄下。

UI Automator Viewer 參考: http://www.itdecent.cn/p/b2890c631ec5

Monkey 源代碼參考:http://androidxref.com/5.1.1_r6/xref/development/cmds/monkey/src/com/android/commands/monkey/MonkeySourceScript.java

MonkeyRunner 參考: https://developer.android.google.cn/studio/test/monkeyrunner?hl=zh_cn

2. Monkey Script API

1. 啟動應用 LaunchActivity
LaunchActivity(String packageName,String activityName)

參數(shù):

  • packageName: 程序的包名
  • activityName: 要啟動的 Activity,必須是完整的包名加類名

注意:LaunchActivity() 函數(shù)啟動的 Activity 需要在 AndroidManifest 文件中配置 Activity 的 exported 屬性為 true。

2. 等待事件 UserWait
UserWait(long sleeptime)

參數(shù):

  • sleeptime: 等待的時間,單位為毫秒
3. 輸入字符串 DispatchString
DispatchString(String text)

參數(shù):

  • text: 要輸入的字符串
4. 點擊按鍵 DispatchPress
DispatchPress(int keyCode)

參數(shù):

  • keyCode: 按鍵的值,參考 android.view.KeyEvent 類
5. 執(zhí)行 shell 命令 RunCmd
RunCmd(String cmd)

參數(shù):

  • cmd: 要執(zhí)行的 shell 命令
6. 打開或關閉鍵盤 DispatchFlip
DispatchFlip(boolean keyboardOpen)

參數(shù):

  • keyboardOpen: true 打開,false 關閉
7. 點擊事件 DispatchPointer
DispatchPointer(long downtime,long eventtide,int action,float x,float y,
                float pressure,float size,int metastate,float xprecision,
                float yprecision,int device,int edgeflags)

參數(shù):

  • downtime: 指按鍵最初被按下的時間
  • eventtide: 指事件發(fā)生的時間
  • action: 指具體操作的動作,如按下(0 代表按下,1 代表抬起)
  • x, y: 指點擊的 X 和 Y 的坐標
  • pressure: 壓力事件的大小(0~1)
  • size: 指觸摸的記事值(0~1)
  • metastate: 指當前按下mate鍵的標識
  • xprecision,yprecision: 指x和y坐標的精確值
  • device: 事件的來源(0~X)
  • edgeflags: 指超出屏幕的范圍
8. 軌跡球事件 DispatchTrackball
DispatchTrackball(long downtime,long eventtide,int action,float x,float y,
                  float pressure,float size,int metastate,float xprecision,
                  float yprecision,int device,int edgeflags)
  • 參數(shù)和 DispatchPointer 一樣
9. 拖動 Drag
Drag(float xStart,float yStart, float xEnd, float yEnd,int stepCount)

參數(shù):

  • xStart: 事件開始時的 X 坐標
  • yStart: 事件開始時的 Y 坐標
  • xEnd: 事件結束時的 X 坐標
  • yEnd: 事件結束時的 Y 坐標
  • stepCount: 拖動事件它由多個大大小小的事件組成,用來指定它是由多少個小事件組成的,值越大,越連貫
10. 雙指縮放 PinchZoom
PinchZoom(float pt1xStart,float pt1yStart,float pt1xEnd,float pt1yEnd,
          float pt2xStart,float pt2yStart,float pt2xEnd,float pt2yEnd,int stepCount)

參數(shù):

  • pt1xStart: 第一個手指開始時的 X 坐標
  • pt1yStart: 第一個手指開始時的 Y 坐標
  • pt1xEnd: 第一個手指結束時的 X 坐標
  • pt1yEnd: 第一個手指結束時的 Y 坐標
  • pt2xStart: 第二個手指開始時的 X 坐標
  • pt2yStart: 第二個手指開始時的 Y 坐標
  • pt2xEnd: 第二個手指結束時的 X 坐標
  • pt2yEnd: 第二個手指開始時的 X 坐標
  • stepCount: 縮放次數(shù)
11. 發(fā)送按鍵消息 DispatchKey
DispatchKey(long downTime,long eventTime,int action,int keyCode,
            int repeat,int metaState,int device,int scancode)

參數(shù):

  • downTime: 指按鍵最初被按下的時間
  • eventTime:按鍵事件發(fā)生時間
  • action: 指具體操作的動作,0 表示按下,1 表示抬起
  • keyCode: 按鍵的值,參考 android.view.KeyEvent 類
  • repeat: 按按鍵的次數(shù)
  • metaState: 指當前按下mate鍵的標識
  • device: 事件的來源(0~X)
  • scancode: 事件的原始設備掃描代碼
12. 旋轉屏幕 RotateScreen
RotateScreen(int rotationDegree,int persist)

參數(shù):

  • rotationDegree:旋轉的角度,只支持 0,90,180,270
  • persist: 是否保持旋轉前的狀態(tài),0 不保持,1 保持
13. 長按事件 LongPress
LongPress()
  • 標準長按為 2 秒,沒有參數(shù),直接調用。
14. 長按事件 PressAndHold
PressAndHold(float x,float y,long pressDuration)

參數(shù):

  • x: 指長按的 X 坐標
  • y: 指長按的 Y 坐標
  • pressDuration:長按的持續(xù)時間,單位毫秒

PressAndHold 用于模擬一個長按事件,和 LongPress 類似,但它可以指定長按坐標和時長。

15. 手指單擊事件 Tap
Tap(float x,float y,long tapDuration)

參數(shù):

  • x: 指單擊的 X 坐標
  • y: 指單擊的 Y 坐標
  • tapDuration :單擊的持續(xù)時間,可選參數(shù),單位毫秒
16. 喚醒設備并解鎖 DeviceWakeUp
DeviceWakeUp()
  • DeviceWakeUp 命令可以喚醒設備并進行解鎖。沒有參數(shù),直接調用。當然需要的是一個無鎖屏密碼的設備才可以,有數(shù)字或圖形鎖屏密碼,都會導致失敗。
17. 等待 5 秒 ProfileWait
ProfileWait()
  • ProfileWait 命令和 UserWait 類似,但是它已經設定好等待的時長,就是 5s ,沒有參數(shù),直接調用。

Adnroid-Monkey Script 壓力測試(二)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容