Android自动化测试之——UI Automator

2024-04-11 16:58

本文主要是介绍Android自动化测试之——UI Automator,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Android自动化测试之——UI Automator

  • Android自动化测试之UI Automator
    • UI Automator综述
    • Android API要求
    • UI Automator框架
    • UI Automator 查看器
    • UI Automator 配置

刚上班,部门让从自动化测试做起,顺带熟悉业务,到现在为止做自动化测试已经三个月了,从 UI AutomatorEspersso,到Mockito再到JUnit等等,学习了很多新知识,也还有许多不到位的地方要继续去深入研究。

利用空闲时间对这段时间学的知识做个总结并分享。个人表达能力不太好,写的不好的地方还请多多批评指正。

UI Automator综述

UI Automator 是一套黑盒UI自动化测试框架,具有灵活性强、支持跨进程进行自动化测试、不依赖源码等优点,在自动化测试领域占有一席之地。UI Automator 测试框架非常适合编写黑盒自动化测试,其中的测试代码不依赖于目标应用的内部实现详情。。

Android API要求

UIAutomator必须在 Android4.3 ( API18 ) 以上运行。

UI Automator框架

UIAutomator框架可以分为一基类、一配置、一设备一异常、两接口三控件以及一个选择器,介绍如下:

  • 基类:UIAutomatorTestCase –负责测试用例信息获取和参数执行,所有的测试类都必须继承于它,UIAutomatorTestCase继承于junit.framework.TestCase;

  • 配置:Configurator –可以控制测试用例执行过程中事件等待超时、控件可见超时等;

  • 设备:UIDevice –设备封装类,负责获取设备信息以及与设备进行交互等,eg: 返回桌面、点击、检查屏幕情况等等;

  • 异常:UiObjectNotFoundException –测试异常,在当前界面下找不到控件时抛出该异常;

  • 接口:

    • UiWatcher –界面观察者,可以处理中断弹窗,使测试用例顺利执行;

    • IAumatormationSupport –辅助类;

  • 控件:

    • UiObject –代表一个控件,代表Android中的一个控件;

    • UiCollection –控件集合,可以用来遍历集合;

    • UiScrollable –可以滚动的控件,eg:ListView等;

  • 选择器:UiSelector –控件选择器,可以利用控件的属性匹配目标控件;

UI Automator 查看器

关于UI Automator 查看器,官网是这样描述的:

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

uiautomatorviewer 工具位于 <android-sdk>/tools/bin 目录下,如果配置了ANDROID_HOME环境变量,则可以在terminal窗口中运行:

./uiautomatorviewer

查看器如下图所示:
这里写图片描述

  1. 手机或者模拟器当前界面;
  2. 当前界面的布局树;
  3. 当前选中控件的属性;

UI Automator 配置

  • 要将 AndroidJUnitRunner 设置为 Gradle 项目中的默认测试仪器运行器,请在 build.gradle 文件中指定此依赖关系:
android {defaultConfig {testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"}
}
  • 要在 Gradle 项目中使用 Android 测试支持库,请在 build.gradle 文件中添加这些依赖关系:
dependencies {androidTestCompile 'com.android.support.test:runner:0.5'// JUnit 4 rulesandroidTestCompile 'com.android.support.test:rules:0.5'// UI AutomatorandroidTestCompile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.2'
}

接下来就可以尽情的撸代码了……

这篇关于Android自动化测试之——UI Automator的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/894661

相关文章

Nginx设置连接超时并进行测试的方法步骤

《Nginx设置连接超时并进行测试的方法步骤》在高并发场景下,如果客户端与服务器的连接长时间未响应,会占用大量的系统资源,影响其他正常请求的处理效率,为了解决这个问题,可以通过设置Nginx的连接... 目录设置连接超时目的操作步骤测试连接超时测试方法:总结:设置连接超时目的设置客户端与服务器之间的连接

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

Android里面的Service种类以及启动方式

《Android里面的Service种类以及启动方式》Android中的Service分为前台服务和后台服务,前台服务需要亮身份牌并显示通知,后台服务则有启动方式选择,包括startService和b... 目录一句话总结:一、Service 的两种类型:1. 前台服务(必须亮身份牌)2. 后台服务(偷偷干

10个Python自动化办公的脚本分享

《10个Python自动化办公的脚本分享》在日常办公中,我们常常会被繁琐、重复的任务占据大量时间,本文为大家分享了10个实用的Python自动化办公案例及源码,希望对大家有所帮助... 目录1. 批量处理 Excel 文件2. 自动发送邮件3. 批量重命名文件4. 数据清洗5. 生成 PPT6. 自动化测试

10个Python Excel自动化脚本分享

《10个PythonExcel自动化脚本分享》在数据处理和分析的过程中,Excel文件是我们日常工作中常见的格式,本文将分享10个实用的Excel自动化脚本,希望可以帮助大家更轻松地掌握这些技能... 目录1. Excel单元格批量填充2. 设置行高与列宽3. 根据条件删除行4. 创建新的Excel工作表5

Android kotlin语言实现删除文件的解决方案

《Androidkotlin语言实现删除文件的解决方案》:本文主要介绍Androidkotlin语言实现删除文件的解决方案,在项目开发过程中,尤其是需要跨平台协作的项目,那么删除用户指定的文件的... 目录一、前言二、适用环境三、模板内容1.权限申请2.Activity中的模板一、前言在项目开发过程中,尤

MySQL分表自动化创建的实现方案

《MySQL分表自动化创建的实现方案》在数据库应用场景中,随着数据量的不断增长,单表存储数据可能会面临性能瓶颈,例如查询、插入、更新等操作的效率会逐渐降低,分表是一种有效的优化策略,它将数据分散存储在... 目录一、项目目的二、实现过程(一)mysql 事件调度器结合存储过程方式1. 开启事件调度器2. 创

Vue项目中Element UI组件未注册的问题原因及解决方法

《Vue项目中ElementUI组件未注册的问题原因及解决方法》在Vue项目中使用ElementUI组件库时,开发者可能会遇到一些常见问题,例如组件未正确注册导致的警告或错误,本文将详细探讨这些问题... 目录引言一、问题背景1.1 错误信息分析1.2 问题原因二、解决方法2.1 全局引入 Element

Python Invoke自动化任务库的使用

《PythonInvoke自动化任务库的使用》Invoke是一个强大的Python库,用于编写自动化脚本,本文就来介绍一下PythonInvoke自动化任务库的使用,具有一定的参考价值,感兴趣的可以... 目录什么是 Invoke?如何安装 Invoke?Invoke 基础1. 运行测试2. 构建文档3.

Python中的可视化设计与UI界面实现

《Python中的可视化设计与UI界面实现》本文介绍了如何使用Python创建用户界面(UI),包括使用Tkinter、PyQt、Kivy等库进行基本窗口、动态图表和动画效果的实现,通过示例代码,展示... 目录从像素到界面:python带你玩转UI设计示例:使用Tkinter创建一个简单的窗口绘图魔法:用