UI Automator
UI Automator是一个UI测试框架,适用于跨系统和已安装应用程序的跨应用程序功能UI测试。
注意:此框架需要Android 4.3(API级别18)或更高版本。
UI Automator测试框架提供了一组API来构建用于在用户应用程序和系统应用程序上执行交互的UI测试。UI Automator API允许您执行操作,例如打开测试设备中的“设置”菜单或应用程序启动器。UI Automator测试框架非常适合编写黑盒式自动化测试,其中测试代码不依赖于目标应用程序的内部实现细节。
UI Automator测试框架的主要功能包括:
- 检查布局层次结构的查看器。有关更多信息,请参阅 UI Automator Viewer。
- 用于检索状态信息并在目标设备上执行操作的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)