UI Automator 是一个界面测试框架,适用于整个系统上以及多个已安装应用间的跨应用功能界面测试。

注意:此框架需要 Android 4.3(API 级别 18)或更高版本。

UI Automator 测试框架提供了一组 API,用于构建在用户应用和系统应用上执行交互的界面测试。通过 UI Automator API,您可以执行在测试设备中打开“设置”菜单或应用启动器等操作。UI Automator 测试框架非常适合编写黑盒式自动化测试,此类测试的测试代码不依赖于目标应用的内部实现细节。

UI Automator 测试框架的主要功能包括:

用于检查布局层次结构的查看器。如需了解详情,请参阅 UI Automator 查看器。

用于检索状态信息并在目标设备上执行操作的 API。如需了解详情,请参阅访问设备状态。

支持跨应用界面测试的 API。如需了解详情,请参阅 UI Automator API。

UI Automator 查看器

uiautomatorviewer 工具提供了一个方便的 GUI,用于扫描和分析 Android 设备上当前显示的界面组件。您可以使用此工具来检查布局层次结构并查看设备前台显示的界面组件的属性。利用此信息,您可以使用 UI Automator 创建更精细的测试。例如,通过创建与特定可见属性匹配的界面选择器以做到这一点。

uiautomatorviewer 工具位于 /tools/bin 目录中。

访问设备状态

UI Automator 测试框架提供了一个 UiDevice 类,用于在运行目标应用的设备上访问和执行操作。您可以调用其方法以访问设备属性,如当前屏幕方向或显示屏尺寸。UiDevice 类还可用于执行以下操作:

改变设备的旋转。

按硬件键,如“音量调高按钮”。

按返回、主屏幕或菜单按钮。

打开通知栏。

截取当前窗口的屏幕截图。

例如,如需模拟按下“主屏幕”按钮,请调用 UiDevice.pressHome() 方法。

UI Automator API

通过 UI Automator API,您可以编写可靠的测试,而无需了解目标应用的实现细节。您可以使用这些 API 在多个应用间捕获和操纵界面组件:

UiCollection:枚举容器的界面元素,目的是为了计数,或者按可见文本或内容说明属性来定位子元素。

UiObject:表示设备上可见的界面元素。

UiScrollable:支持搜索可滚动界面容器中的项目。

UiSelector:表示对设备上的一个或多个目标界面元素的查询。

Configurator:可让您设置用于运行 UI Automator 测试的关键参数。

例如,以下代码展示了如何编写测试脚本以显示设备中的默认应用启动器:

Kotlin

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.

val allAppsButton: UIObject = device.findObject(

UiSelector().description("Apps"))

// Perform a click on the button to load the launcher.

allAppsButton.clickAndWaitForNewWindow()Java

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,请参阅 API 参考文档和测试多个应用的界面指南。

其他资源

如需详细了解如何在 Android 测试中使用 UI Automator,请参阅以下资源。

示例

BasicSample:基本的 UI Automator 示例。

google android ui,UI Automator相关推荐

  1. ​第一本 Compose 图书上市,联想大咖教你学会 Android 全新 UI 编程

    朱江 | 现任联想(北京)有限公司 Android 开发工程师,从事 Android 开发工作多年,有丰富的项目经验,负责和参与开发过多款移动应用程序,同时还是多个开源项目的作者.2017 年开始在 ...

  2. android炫酷叼ui,XUI: 一个简洁而优雅的Android原生UI框架,解放你的双手!

    XUI 一个简洁而又优雅的Android原生UI框架,解放你的双手!还不赶紧点击使用说明文档,体验一下吧! 涵盖绝大部分的UI组件:TextView.Button.EditText.ImageView ...

  3. android Handler UI线程后台线程通信

    本文转自http://blog.csdn.net/qianquanyiyan/article/details/8215887,所有权力归原作者所有. 一.Handler的定义: 主要接受子线程发送的数 ...

  4. 转载-Android 前沿UI

    原文地址:https://blog.csdn.net/qq_35224776/article/details/86064712 抽屉菜单 MaterialDrawer ★7337 - 安卓抽屉效果实现 ...

  5. Android4.3 Google Pinyin输入法UI定制

    Android4.3 Google Pinyin输入法UI定制 先来看原版输入法的效果如下: 定制后的效果如下: SystemServer会启动InputMethodManagerService,在I ...

  6. Android 开源UI框架汇总

    1. github排名 https://github.com/trending,github搜索:https://github.com/search 2.https://github.com/wasa ...

  7. [Appium] 搭建Android App UI自动化环境

    [Appium] 搭建Android App UI自动化环境-Windows10 一.Appium介绍 Appium是一个开源的自动化测试工具,其支持iOS和安卓平台上的原生的,基于移动浏览器的,混合 ...

  8. android引用ui,简介 - 如何引用 - 《XUI - Android 原生 UI 框架》 - 书栈网 · BookStack...

    在决定使用XUI前,你必须明确的一点是,此框架给出的是一整套UI的整体解决方案,如果你只是想使用其中的几个控件,那大可不必引入如此庞大的一个UI库,Github上会有更好的组件库.如果你是想拥有一套可 ...

  9. Android原生UI开发框架 《Jetpack Compose入门到精通》最全上手指南

    前言 在去年的Google/IO大会上,亮相了一个全新的 Android 原生 UI 开发框架-Jetpack Compose, 与苹果的SwiftIUI一样,Jetpack Compose是一个声明 ...

  10. 设计与算法 | Google Photos Web UI

    作者 / Antin Harasymiv, UX Engineer, Google * 很多时候,体验设计和算法的联系会比想象中要紧密得多.本文将从代码和体验两个层面和大家深度分享. 几年前,我有幸成 ...

最新文章

  1. 100行代码搞定实时视频人脸表情识别(附代码)
  2. [.NET源码] EF的增删改查
  3. jmeter constant timer 如何添加_阿里巴巴在开源压测工具 JMeter 上的实践和优化
  4. Python之迭代器
  5. 改进初学者的PID-正反作用
  6. 闲心之谈之虚拟货币系列:1、KDJ图实用技巧
  7. oracle 五天之前,Oracle课程档案,第五天
  8. Linux学习总结(77)—— Shell 开发运维经验总结
  9. android 对java 支持_Android在未来对 Java 8 特性的支持
  10. python gui控件案例_python GUI库图形界面开发之PyQt5布局控件QHBoxLayout详细使用方法与实例...
  11. 使用PHP,求算100-999以内的水仙花数--详细
  12. Linux指令篇:文件系统--fdisk(转)
  13. python在excel中插入折线图_Python-使用XlsxWriter模块在Excel工作表中绘制折线图
  14. cwRsync文件同步
  15. 关于IE上embed自动播放
  16. WLAN定义和基本架构
  17. html 制作人物模型,星际科幻人物模型材质教程 Stargazer Character Design Tutorial
  18. C语言--小学生计算机辅助教学系统
  19. Android系统设置默认24小时制
  20. 相位噪声基础及测试原理和方法

热门文章

  1. Elasticsearch】es 模糊查询导致Elasticsearch服务宕机
  2. 【java】java ReentrantLock 源码详解
  3. 【Flink】Flink Dump of the process-tree for container Exit code is 143
  4. 【Flink】Flink Association with remote system akka Connection refused
  5. 【git】IDEA下GitLab分支使用测试
  6. spark学习-Spark的groupByKey
  7. 你写的代码扩展性高吗?快试试用Spring注入方式来解耦代码!
  8. Java:实现文件批量导入导出实践(兼容xls,xlsx)
  9. Linux系统学习:目录结构和文件管理指令
  10. 有函数就可以实现面向对象