UI Automator基礎學習和使用
阿新 • • 發佈:2019-01-13
UI Automator
UI Automator是一個UI測試框架,適用於跨系統和已安裝應用程式的跨應用程式功能UI測試。
注意:此框架需要Android 4.3(API級別18)或更高版本。
UI Automator測試框架提供了一組API來構建用於在使用者應用程式和系統應用程式上執行互動的UI測試。UI Automator API允許您執行操作,例如開啟測試裝置中的“設定”選單或應用程式啟動器。UI Automator測試框架非常適合編寫黑盒式自動化測試,其中測試程式碼不依賴於目標應用程式的內部實現細節。
UI Automator測試框架的主要功能包括:
- 檢查佈局層次結構的檢視器。有關更多資訊,請參閱
- 用於檢索狀態資訊並在目標裝置上執行操作的API。有關更多資訊,請參閱 訪問裝置狀態。
- 支援跨應用程式UI測試的API。有關更多資訊,請參閱 UI Automator API。
UI Automator檢視器
該uiautomatorviewer
工具提供了一個方便的GUI來掃描和分析Android裝置上當前顯示的UI元件。您可以使用此工具檢查佈局層次結構,並檢視在裝置前景中可見的UI元件的屬性。此資訊允許您使用UI Automator建立更細粒度的測試,例如通過建立與特定可見屬性匹配的UI選擇器。
該uiautomatorviewer
工具位於<android-sdk>/tools/bin
目錄中。
訪問裝置狀態
UI Automator測試框架提供了一個 UiDevice
類,用於在執行目標應用程式的裝置上訪問和執行操作。您可以呼叫其方法來訪問裝置屬性,例如當前方向或顯示大小。該 UiDevice
班也讓您執行操作如:
- 更改裝置旋轉。
- 按硬體鍵,例如“音量增大”。
- 按“後退”,“主頁”或“選單”按鈕。
- 開啟通知陰影。
- 擷取當前視窗的螢幕截圖。
例如,要模擬Home按鈕,請呼叫該UiDevice.pressHome()
方法。
UI Automator API
UI Automator API允許您編寫可靠的測試,而無需瞭解您所針對的應用程式的實現細節。您可以使用這些API在多個應用程式中捕獲和操作UI元件:
UiCollection
:列舉容器的UI元素,以便通過可見文字或內容描述屬性對子元素進行計數或定位。(API:https://developer.android.com/reference/androidx/test/uiautomator/UiCollection)UiDevice
UiDevice提供對裝置狀態資訊的訪問。您還可以使用此類來模擬裝置上的使用者操作,例如按d-pad或按Home和Menu按鈕。(API:https://developer.android.com/reference/androidx/test/uiautomator/UiDevice)UiObject
:表示在裝置上可見的UI元素。(API:https://developer.android.com/reference/androidx/test/uiautomator/UiObject)UiScrollable
:為在可滾動UI容器中搜索專案提供支援。(API:https://developer.android.com/reference/androidx/test/uiautomator/UiScrollable)UiSelector
:表示裝置上一個或多個目標UI元素的查詢。(API:https://developer.android.com/reference/androidx/test/uiautomator/UiSelector)Configurator
:允許您設定執行UI Automator測試的關鍵引數(API:https://developer.android.com/reference/androidx/test/uiautomator/Configurator)- UiAutomatorTestCase在裝置上執行的UI Automator測試用例。(API:https://developer.android.com/reference/androidx/test/uiautomator/UiAutomatorTestCase)
- UiAutomatorInstrumentationTestRunner測試跑步者的
UiAutomatorTestCase
s。此類測試在裝置上執行,並且可以訪問應用程式上下文。(API:https://developer.android.com/reference/androidx/test/uiautomator/UiAutomatorInstrumentationTestRunner)