Android-MonkeyRunner 壓力測(cè)試(一)

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

1. MonkeyRunner 介紹

MonkeyRunner 是 Android SDK 中提供的一個(gè)用于自動(dòng)化壓力測(cè)試的工具包,可以同時(shí)在多個(gè)設(shè)備上進(jìn)行測(cè)試。
它的測(cè)試程序是使用 Python 語(yǔ)言寫(xiě)的,并使用 monkeyrunner 命令運(yùn)行 Python 測(cè)試程序(monkeyrunner 命令在 Andorid 的 SDK tools\bin 目錄下)。

在 MonkeyRunner 測(cè)試程序中,你可以使用它的 API 安裝 Android 應(yīng)用、
測(cè)試應(yīng)用、向應(yīng)用發(fā)送按鍵、截屏、保存屏幕截圖等。

它是通過(guò)屏幕上 View 的坐標(biāo)來(lái)發(fā)送點(diǎn)擊、長(zhǎng)按等事件的。
可以使用 Android ADK 的 tools\bin 目錄下 uiautomatorviewer 工具獲取 View 在屏幕上的坐標(biāo)。
UI Automator Viewer 參考: http://www.itdecent.cn/p/b2890c631ec5

MonkeyRunner 包含許多的 API,它的 API 主要包含三個(gè)部分:

  1. MonkeyRunner 測(cè)試程序入口類(lèi),包含多個(gè)靜態(tài)方法,如:等待設(shè)備連接、彈出 Dialog。
  2. MonkeyDevice 用來(lái)控制 Android 設(shè)備或模擬器。
  3. MonkeyImage 用來(lái)存儲(chǔ)設(shè)備或模擬器屏幕截圖。

2. MonkeyRunner API

2.1. MonkeyRunner API

1. 連接設(shè)備或模擬器

MonkeyDevice waitForConnection(float timeout, string deviceId)

參數(shù):

  • timeout: 等待連接的秒數(shù)。默認(rèn)值為無(wú)限期等待。
  • deviceId: 設(shè)備或模擬器的序列號(hào)。通常使用 adb devices 命令獲取。

返回值:

  • 設(shè)備或模擬器的 MonkeyDevice 實(shí)例。使用此對(duì)象可控制設(shè)備或模擬器并與之通信。

2. 程序暫停

void sleep(float seconds)

參數(shù):

  • seconds: 當(dāng)前程序暫停指定的秒數(shù),單位:秒

3. 顯示提示對(duì)話(huà)框

void alert(string message, string title, string okTitle)

參數(shù):

  • message: 對(duì)話(huà)框中顯示的消息。
  • title: 對(duì)話(huà)框的標(biāo)題。默認(rèn)值為“Alert”。
  • okTitle: 對(duì)話(huà)框按鈕中顯示的文本。默認(rèn)值為“OK”。
2.2. MonkeyDevice API

1. 安裝 App

void installPackage(string path)

參數(shù):

  • path: 要安裝的 .apk 文件的完全限定路徑和文件名。

2. 啟動(dòng) Activity

void startActivity(string uri, string action, string data, string mimetype, 
                   iterable categories dictionary extras,
                   component component, iterable flags)

參數(shù):

  • uri: Intent 的 URI,和 Intent.setData() 方法對(duì)應(yīng)。
  • action: Intent 的操作,和 Intent.setAction() 方法對(duì)應(yīng)。
  • data: Intent 的數(shù)據(jù) URI,和 Intent.setData() 方法對(duì)應(yīng)。
  • mimetype: Intent 的 MIME 類(lèi)型,和 Intent.setType() 方法對(duì)應(yīng)。
  • categories: 一種可迭代數(shù)據(jù)結(jié)構(gòu),包含定義 Intent 的類(lèi)別的字符串,和 Intent.addCategory() 方法對(duì)應(yīng)。
  • extras: Intent 的額外數(shù)據(jù)字典。和 Intent.putExtra() 方法對(duì)應(yīng)。
    每個(gè)字典項(xiàng)的鍵都應(yīng)該是一個(gè)字符串。字典項(xiàng)的值可以是任意簡(jiǎn)單或結(jié)構(gòu)化數(shù)據(jù)類(lèi)型。
  • component: Intent 的組件(請(qǐng)參閱 ComponentName)。使用此參數(shù)可將 Intent 指向特定 Android 軟件包中的特定類(lèi)。
  • flags: 一種可迭代數(shù)據(jù)結(jié)構(gòu),包含可控制 Intent 處理方式的標(biāo)記,和 Intent.setFlags() 方法對(duì)應(yīng)。

3. 發(fā)送點(diǎn)擊事件

void touch(integer x, integer y, string type)

參數(shù):

  • x 點(diǎn)擊事件的 X 坐標(biāo)。
  • y 點(diǎn)擊事件的 Y 坐標(biāo)。
  • type 要發(fā)送的點(diǎn)擊事件的類(lèi)型。允許的值包括 DOWN、UP 和 DOWN_AND_UP。

4. 發(fā)送按鍵事件

void press(string name, integer type)

參數(shù):

  • name 要發(fā)送的鍵碼的名稱(chēng)。參考 android.view.KeyEvent,是鍵碼名稱(chēng),不是對(duì)應(yīng)的整數(shù)值。
  • type 要發(fā)送的按鍵事件的類(lèi)型。允許的值包括 DOWN、UP 和 DOWN_AND_UP。

5. 輸入內(nèi)容

void type(string message)

參數(shù):

  • message 要輸入的字符串。

6. 屏幕截屏

MonkeyImage takeSnapshot()

返回值:

  • 一個(gè)包含當(dāng)前屏幕截圖的 MonkeyImage 對(duì)象。

2.3. MonkeyImage API

1. 保存屏幕截圖

void writeToFile(string filename, string format)

參數(shù):

  • filename 文件保存路徑,例如:D:/test.png
  • format 文件的輸出格式。如果沒(méi)有提供格式,則該方法將嘗試根據(jù)文件擴(kuò)展名猜出格式。如果未提供擴(kuò)展名且未指定格式,則使用默認(rèn)格式“png”

2. 圖片比較

boolean sameAs(MonkeyImage otherImage, float percent)

參數(shù):

  • otherImage 要與此對(duì)象進(jìn)行比較的另一個(gè) MonkeyImage 對(duì)象。
  • percent 介于 0.0(含)到 1.0(含)的浮點(diǎn)數(shù),表示要使方法返回 true,
    必須相同的像素所占百分比。默認(rèn)值為 1.0,表示所有像素均必須匹配。

返回值:

  • 如果圖片匹配,則返回布爾值 true,否則返回布爾值 false。

Android-MonkeyRunner 壓力測(cè)試(二)
更多 MonkeyRunner API 參考:https://developer.android.google.cn/studio/test/monkeyrunner/MonkeyDevice?hl=zh_cn

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

友情鏈接更多精彩內(nèi)容