android測試載入器MonkeyRunner--google官網翻譯

來源:互聯網
上載者:User

android測試載入器MonkeyRunner--google官網翻譯

最近在複習之前的筆記,在回顧MonkeyRunner時看了看google官網的內容,寫得不錯,就翻譯出來分享下。其實google官網真是一個學習的好地方。

基礎知識

MonkeyRunner工具提供了一個API用於在Android代碼之外控制Android裝置和模擬器。通過MonkeyRunner,您可以寫出一個Python程式去安裝一個Android應用程式或測試包,運行它,向它發送類比擊鍵,截取它的使用者介面圖片,並將儲存於工作站上。monkeyrunner工具的主要設計目的是用於測試功能/架構水平上的應用程式和裝置,或用於運行單元測試套件,但您當然也可以將其用於其它目的。
MonkeyRunner工具與monkey工具並無關聯。monkey工具直接運行在裝置或模擬器的adbshell中,產生使用者或系統的偽隨機事件流。而MonkeyRunner工具則是在工作站上通過API定義的特定命令和事件控制裝置或模擬器。
MonkeyRunner工具為Android測試提供了以下特性:

多裝置控制:MonkeyRunner的API可以跨多個裝置或模擬器實施測試套件。您可以在同一時間接上所有的裝置,也可以一次啟動全部模擬器,依據程式來依次串連到每個裝置,然後運行一個或多個測試。您也可以用程式啟動一個配置好的模擬器,運行一個或多個測試。

功能測試:MonkeyRunner可以為一個應用自動貫徹一次功能測試。您提供按鍵或觸摸事件的輸入數值,然後觀察輸出結果的截屏。

迴歸測試:MonkeyRunner可以運行某個應用,並將其結果截屏與既定已知正確的結果截屏相比較,以此測試應用的穩定性。

可擴充的自動化:由於MonkeyRunner是一個API工具包,您可以基於Python模組和程式開發一整套系統,以此來控制Android裝置。除了使用MonkeyRunner的API之外,您還可以使用標準的Python os和subprocess模組來調用如adb這樣的Android工具。

您還可以向MonkeyRunnerAPI中添加您自己的類。我們將在後面會對此進行詳細討論。
MonkeyRunner工具使用Jython(使用Java程式設計語言的一種Python實現)。Jython允許MonkeyRunner API與Android架構輕鬆的進行互動。使用Jython,您可以使用Python文法來擷取API中的常量、類以及方法。

一個簡單的MonkeyRunner程式執行個體

以下為一個簡單的MonkeyRunner程式,它將會串連到一個裝置,建立一個MonkeyDevice對象。使用MonkeyDevice對象,程式將安裝一個Android應用程式套件,運行其中一個活動,並向其發送按鍵事件。程式接下來會將結果,建立一個MonkeyImage對象,並使用這個對象將儲存至.png檔案。

# 匯入此程式所需的MonkeyRunner模組 from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice # 串連當前裝置,返回一個MonkeyDevice對象 device = MonkeyRunner.waitForConnection() # 安裝Android包,注意,此方法返回的傳回值為boolean,由此您可以判斷安裝過程是否正常 device.installPackage('myproject/bin/MyApplication.apk') # 運行此應用中的一個活動 device.startActivity(component='com.example.android.myapplication.MainActivity') # 按下菜單按鍵 device.press('KEYCODE_MENU','DOWN_AND_UP') # 截取螢幕 result = device.takeSnapShot# 將儲存至檔案 result.writeToFile('myproject/shot1.png','png')
MonkeyRunner 的API

MonkeyRunner 在com.android.monkeyrunner包中總共包含三個模組:

MonkeyRunner:一個為monkeyrunner程式提供工具方法的類。這個類提供了用於串連monkeyrunner至裝置或模擬器的方法。它還提供了用於建立一個monkeyrunner程式的使用者介面以及顯示內建協助的方法。

MonkeyDevice :表示一個裝置或模擬器。這個類提供了安裝和卸載程式包、啟動一個活動以及發送鍵盤或觸摸事件到應用程式的方法。您也可以用這個類來運行測試包。

MonkeyImage :表示一個對象。這個類提供了、將位元影像轉換成各種格式、比較兩個MonkeyImage對象以及寫映像到檔案的方法。

在python程式中,您將以Python模組的形式使用這些類。monkeyrunner工具不會自動匯入這些模組。您必須使用類似如下的from語句:

  fromcom.android.monkeyrunner import

其中,為您想要匯入的類名。您可以在一個from語句中匯入超過一個模組,其間以逗號分隔。

運行MonkeyRunner

您可以直接使用一個代碼檔案運行MonkeyRunner,抑或在互動式對話中輸入MonkeyRunner語句。不論使用哪種方式,您都需要調用SDK目錄的tools子目錄下的MonkeyRunner命令。如果您提供一個檔案名稱作為運行參數,則MonkeyRunner將視檔案內容為Python程式,並加以運行;否則,它將提供一個互動對話環境。
MonkeyRunner命令的文法為:

monkeyrunner -plugin  <程式檔案名稱> <程式選項>

-plugin : (可選)指定一個內含MonkeyRunner外掛程式的.jar檔案。欲瞭解

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.