自動化測試 | UI Automator 入門指南

自動化測試的定義,這裏先引用一段維基百科的定義:android

在軟件測試中,測試自動化(英語:Test automation)是一種測試方法,使用特定的軟件,去控制測試流程,並比較實際的結果與預期結果之間的差別。經過將測試自動化,可讓正式的測試過程當中的必要測試,能夠反覆進行;經過這種方法,也能夠將難以手動進行的測試,交由軟件來作。這種測試方法,是持續交付流程中的必要組成。編程

用我本身的話說就是,自動化測試的價值在於將重複性的測試工做經過代碼和工具組織成一套可屢次使用的測試流程,按下回車鍵或者點擊開始按鈕便可泡杯咖啡喝杯茶靜待其完成整個測試任務。微信

自動化測試的工具和框架有不少,近些年比較知名的有 Appium、UI Automator 等等。今天我先介紹下 UI Automator 的入門知識。框架

UI Automator 是一個跨應用(系統應用和第三方應用)的 UI 自動化測試框架,由谷歌官方維護,適用於安卓系統。注意啦~這個框架目前只支持 Android4.3(API level 18) 及以上的安卓系統。工具

UI Automator 測試框架提供了一系列的 API,這些 API 能夠用來編寫基於系統應用和第三方應用的自動化測試用例,例如打開系統設置頁面或者啓動被測應用。UI Automator 測試框架很是適合編寫黑盒自動化測試,測試代碼不依賴於被測應用的內部執行細節。佈局

UI Automator 測試框架包含如下三個主要功能:測試

  • UI Automator Viewer: 界面解析工具,用以獲取應用的界面元素。
  • Accessing device state: 一個 API(應用程序編程接口),用以獲取測試機的狀態信息並執行部分操做。
  • UI Automator APIs: 一組 API,支持跨應用的用戶界面測試。

下面詳細說明此三功能:
UI Automator Viewer
uiautomatorviewer 是安卓 sdk 自帶的一個工具(位於'<android-sdk>/tools/bin'目錄下),能夠用來掃描和分析安卓設備上當前顯示的應用頁面,輸出的結果包含頁面中各 UI 組件的佈局層級和各項屬性。利用這些信息能夠編寫出更加細緻的自動化測試用例。
ui

Accessing device state
UiDevice 是一個類,能夠用來和測試設備上的被測應用進行交互。你能夠調用它的方法獲取到設備信息,諸如當前屏幕旋轉角度或者顯示屏大小。此外,它還能執行其餘操做,例如:3d

  • 改變設備旋轉角度
  • 按下硬件按鈕,例如"音量加"
  • 按下 back、home、menu 鍵
  • 打開通知欄
  • 截圖
    例如,模擬按下 home 鍵的操做:
UiDevice.pressHome()

UI Automator APIs
一組 API,經過它們,無需瞭解被測應用的具體實現細節,便可編寫出健壯的自動化測試用例。你可使用這些 API 去捕獲和操縱跨應用的 UI 組件:code

  • UiCollection: 用以獲取容器內的用戶界面元素個數,或者經過可見的 "text" 和 "content-description" 屬性定位子元素。
  • UiObject: 表示設備上一個可見的用戶界面元素。
  • UiScrollable: 在可滾動的列表中尋找某個項目時會用到。
  • UiSelector: 查詢設備中一個或多個 UI 元素。
  • Configurator: 容許你爲運行中的測試用例設置關鍵參數。
    例如,如下代碼展現瞭如何編寫一個測試腳本用於顯示設備上默認應用的 Launcher:
device = UiDevice.getInstance(getInstrumentation
device.pressHome();
    
// Bring up the default launcher by searching for a UI component
// that matches the content description for the launcher button.
UiObject allAppsButton = device.findObject(new UiSelector().description("Apps"));
    
// Perform a click on the button to load the launcher.
allAppsButton.clickAndWaitForNewWindow();

好啦,本篇文章先是引用了維基百科中關於「自動化測試」的定義,而後說了我對於「自動化測試」的理解,最後介紹了 UI Automator 的入門知識。

其實說到底,自動化測試要作的無非就是如下三件事情:

  1. 動做執行
  2. 結果判斷
  3. 報告展現

先寫到這裏,下篇再分享 UI Automator 的具體應用(從環境搭建到跑通第一個自動化測試用例)。

參考資料:
https://developer.android.com/training/testing/ui-automator


歡迎關注微信公衆號"測試開發Stack"

相關文章
相關標籤/搜索