Android Studio 2.2 Espresso Test Recorder-----解放双手,通过录制测试过程实现测试

通过Espresso测试录制器来创建UI

注意:Espresso测试记录器在Android Stuido 2.2中只是一个测试版。

工具Espresso测试录制器可以让你不写任何代码就可以创建你的UI测试。通过录制测试场景,你可以录制与设备的交互情况,也可以在你的app快照中添加断言来测试特定的UI元素。Espresso测试录制器根据保存的记录自动生成相应的UI测试文件。

Espresso测试录制器的测试文件根据Espresso Testing 的框架来写,Espresso Testing的框架是Android Testing Support Library中的API。Espresso的API根据用户的动作创建简明和稳定的UI测试文件.因为交互和断言没有直接操作app的界面和组件,运行是成片段的并于也运行的速度性能也不好。

关闭设备的动画

在使用Espresso测试录制器之前,需要关闭测试设备上所有的动画,以防出现意想不到的结果。可以查看Testing
UI for a Single App
页的“Set Up Espresso”指南,但是需要注意的是测试录制器在执行save a recording的时候会自动添加依赖所有你不需要手动来进行添加。

录制一个Espresso测试文件

Espresso测试文件宝矿力了两个主要部分:UI交互和View元素的断言。UI交互包括用户可能与你的app进行的点击和输入操作。断言用于检测屏幕中组件的内容或者组件是否存在。例如,一个Note testing app的Espresso测试包含了点击一个按钮的UI交互和通过断言来检测按钮是否存在和note的内容。

这部分将会复习如何通过Espresso测试录制器来创建测试文件,还有如何保存通过录制自动生成的测试文件。

录制UI交互

使用Espresso测试记录器的步骤如下:

1.点击Run > Record Espresso Test

2.在选择目标设备窗口(Select  Deployment Target window),选择所要记录测试的设备。如果需要的话,创建一个新的Android虚拟设备(create
a new Android Virtual Device
:https://developer.android.com/studio/run/managing-avds.html)。然后点击OK.

3.Espresso测试记录器将会触发项目的重新生成,所以在通过Espresso测试录制器与设备进行交互之前,你必须安装并且运行该app。在app运行后,Record Your Test窗口将会出现,由于你并未与设备进行过交互,主面板会显示“No events recorded yet.”通过与设备交互来输出如“tap”和"type"类型的事件。

注意:在交互之前,你可能会看到设备上出现一个“Waiting for Debugger”或者“Attaching Debugger”的窗口。Espresso测试记录器使用调试器(debugger)来输出UI事件。当调试器连接上,弹出窗口将会自动关闭;不要点击Force Close(强制关闭)。

交互记录将会在如图1所示的Record Your Test窗口的主界面显示。当运行测试时,Espresso测试将会按这些动作的顺序来执行。

图1.输出UI交互的Record Your Test窗口

注:

点击Run > Record Espresso Test

选择目标设备

弹出Record Your Test界面

点击Add Assertion,弹出添加断言框

然后操作设备,输出操作事件的日志

选择断言所要测试的控件

选中的控件会在右方的屏幕快照中红色高亮显示,然后在第二个下拉框中选择断言的类型

点击Save Assertion保存断言或者点击Save and Add Another来添加另一个新的断言。点击Save Assertion按钮后的弹窗中,可以继续选择Add Assertion添加断言,也可以直接点击Complete Recording来结束。

点击Complete Recording后,在弹出框中输入生成的测试文件的类名,如果不修改则使用默认的,然后点击Save

在项目中可以看到以刚才点击保存时命名的class

点击MainActivityTest,然后点击右键,选择Run‘MainActivityTest‘

选择要运行的目标设备

点击OK,然后在window下面的Run窗口会出现MainActivityTest的tab页并显示运行进度和信息

添加断言来测试UI元素

断言判断View元素是否存在和里面内容的三种方式:

---text is:测试所选View元素中的text中的内容(内容是否与断言中一致)

---exists:测试所选的View元素是否存在(控件是否存在)

---does not exist:测试当前的View元素不在当前的View层级中(控件是否不存在)

为测试添加断言的步骤如下:

1.点击Add Assertion.Espresso获取的UI层级和其它关于该app的状态信息的捕捉屏幕的弹框将会出现。在Espresso捕捉到屏幕后,这个弹框会自动关闭。

2.Record Your Test窗口的主界面显示当前屏幕的布局。选择快照中所要使用的元素或者在窗口下方的Edit assertion下拉框中选择要创建断言的View元素。被选中的View对象将会显示在红色的高亮框中。

3.从第二个下拉框中选择所需要的断言。Espresso的菜单中填充的是对View元素有效的断言。

---如果选择的断言是“text is”,Espresso将自动为选中的View元素添加文本信息。当然也可以在Edit assertition下面编辑目标断言所需要的的文本信息。

4.点击Save and Add Another来创建另一个断言或者点击Save Assertion来关闭断言界面。

图2的快照是检测标题信息是否为“Happy Testing!”的“text is”断言

图2.选择一个view元素后的编辑断言框(Edit  assertion box)(红色部分)

当创建断言的时,甚至在断言界面还打开Record Your Test窗口的情况下,你仍可以继续与app进行交互,Espresso测试记录器将继续输出事件的日志,但是如果此时正在编辑的断言,则会将保存这些交互信息记录。

注意:由于Espresso测试录制器是一个实验性功能,该工具目前只支持为纵屏添加断言。尽管横屏情况下你也可以添加断言,屏幕捕捉器仍将其显示为纵向,选中的UI元素的红色边界与元素的实际位置并不相符。

保存录制的信息

与app完成交互并且保存了断言信息后,通过下面的步骤来保存录制的信息并且生成Espresso的测试:

1.点击Complete Recording。然后会出现一个窗口可以选择所要进行测试的类名。

2.Espresso测试录制器根据运行的app的包名和打开的Activity的名字来给生成的测试类一个唯一的名字。可以通过Test class name来更改类名。点击Save。

---如果你没有将Espresso的依赖添加到你的app,一个Missing Espresso dependencies的弹出将在你保存test的时候弹出。点击Yes来自动将依赖添加到build.gradle中。

3.当Espresso Test Recorder生成该文件后会自动打开,Android Studio在Project创建将测试的类名列出来。

---测试保存在哪里取决于你的instrumentation test保存的位置,和所运行的Activity的位置。例如,Note testing app的测试保存在你所录制的项目的目录src>androidTest>java>com.example.username.appname的文件夹下。

运行一个本地的Espresso测试

在Android Studio中点击左侧的Project窗口:

1.打开你所要运行的姓名并且打开要运行的测试文件。测试文件的地址取决于instrumentation test的位置和打开的Activity的包名。下面的例子演示了Notest testing app的测试文件将保存到哪里:

---如果在Android视图中,导航到java>com.example.username.appname(androidTest).

---如果在Project视图中,导航到src>androidTest>java>com.example.username.appname

2.在所要运行的测试文件上点击右键,然后点击 Run‘testName‘

---也可以打开测试的文件,在类名或者是方法上点击右键。在TTest Your App(https://developer.android.com/studio/test/index.html#run_a_test)页面查看更多信息。

3.在选择目标设备的窗口,选择所要运行的设备。如有必要,创建一个新的模拟器。点击OK.

注:

项目在Android视图下,测试文件的位置

项目在project视图下测试文件的位置

在IDE底部的Run窗口中监测测试的进程。Android Studio重新创建并生成了项目,并在Run窗口根据测试的名字打开一个新的tab页,如图3所示。你可以在这个tab页查看测试是否通过,需要多久来运行。当运行接收,tab页将输出“Tests ran to completion”。

图3.运行本地的Espresso测试后在Run窗口的输出

更多关于如果写测试的配置,查看Create and Edit Run/Debug Configurations(https://developer.android.com/studio/run/rundebugconfig.html#creating部分的“Defining
a test configuration for a class or method”。

通过Firebase Test Lab运行一个Espresso的测试

你可以通过Firebase Test Lab来将Espresso测试录制器生成的测试文件运行在云端的各种不同配置信息的设备中。通过为你的app创建一个Firebase项目,然后根据说明 Run
your tests with Firebase Test Lab
(https://developer.android.com/training/testing/unit-testing/instrumented-unit-tests.html#run-ctl)在Android Studio中直接创建。

图4.通过在Firebase Test Lab上多部设备上运行后的输出

时间: 2025-01-15 18:43:11

Android Studio 2.2 Espresso Test Recorder-----解放双手,通过录制测试过程实现测试的相关文章

Android Studio第二十期 - 识别Recorder声纹显示水波泡泡效果

代码已经整理好,效果如下图: 总结:此版本控制在6.0以下,以上的自己手动改targetSdkVersion,另外要想想怎么做到语音识别的时候并且播放音乐和此通用一个Record,以后要写一写~ 地址:http://down.51cto.com/data/2260152

Android Studio与Genymotion搭建Android开发环境

概述: Android Stduio是Google在推行的Android IDE,前身是IntelliJ IDEA,是一款Android开发的利器.而Genimotion是一款十分流畅的安卓模拟器,相比谷歌自带的安卓模拟器的龟速启动,Genimotion的速度是非常快的,下面我就为大家介绍使用AndroidStduio与Genymotion来在Windows搭建Android开发环境. 安装jdk: 1.在安裝Android Studio前,要先安裝好JDK现在最新的版本是JDK 8,可以到此链

Android Studio大课堂 - 8.不改变现有目录结构开发Eclipse项目

Android Studio大课堂 - 1.简要介绍 Android Studio大课堂 - 2.下载安装及初始化 Android Studio大课堂 - 3.新建或导入APP Android Studio大课堂 - 4.1.Coding - 定位目标 Android Studio大课堂 - 4.2.Coding - 写代码 Android Studio大课堂 - 4.3.Coding - 使用第三方库 Android Studio大课堂 - 4.4.Coding - 快捷键 Android S

【Android Developer Blog】Android Studio 2.0(07 APRIL 2016)

Android Studio 2.0 Android Studio 2.0是打造高品质,高性能应用的Android开发平台,包括手机和平板,Android Auto,Android Wear和 Android TV.作为Google官方的IDE,Android Studio包含了你需要的一切,包括代码编辑器(code editor),代码分析工具(code analysis tools),模拟器(emulators )等.Android Studio 2.0 stable有着更快的编译速度,更好

Android Studio 2.2 来啦

今年的 I/O 2016 Google 放出了 Android Studio 2.2 的预览版,透露改进了多项功能,只不过为了保证公司项目不受影响,我一般都不安装预览版的,因为预览版意味着不稳定,可能遇到各种意想不到的坑,昨天,Google 终于发布了 Android Studio 2.2 的正式版,于是赶紧第一时间体验了下,按照 Google 的说法本次更新包含了三个方面:speed, smarts, and Android platform support,言外之意就是更快.更智能,而且增加

Android Studio 2.2的新鲜事

转载:http://mp.weixin.qq.com/s?__biz=MzAwODY4OTk2Mg==&mid=2652039482&idx=1&sn=9aa9b204af34baabd2fdbba649e20d79#rd Android Studio 2.2 现在可以下载.Android Studio 2.2 已在 Google I/O 2016 上预展,是全球各地数百万 Android 开发者使用的 IDE 最新版本. 此版本包含增强功能,主要面向三大主题:速度.智能和 And

优秀的 Android Studio 插件

转自:http://www.codeceo.com/article/8-android-studio-plugins.html Android Studio是目前Google官方设计的用于原生Android应用程序开发的IDE.基于JetBrains的IntelliJ IDEA,这是Google I/O 2013第一个宣布的作为Eclipse的继承者,深受广大Android社区的欢迎.在经过漫长的测试阶段后,最终版本于去年12月发布. Android Studio是一个功能全面的开发环境,装备了

Android Studio下项目构建的Gradle配置及打包应用变体

Gradle简介 ??Gradle是一个自动化构建工具,采用Groovy的Domain Specific Language(领域特定语言)来描述和控制构建逻辑.具有语法简洁.可读性强.配置灵活等特点.基于Intellij IDEA社区版本开发的Android Studio天生支持Gradle构建程序.Groovy是一种基于JVM的敏捷开发语言,结合了Phthon.Ruby和Smalltalk的许多强大特性.同时,Groovy代码既能够与java代码很好地结合,也能够用于扩展现有的代码. Grad

Android Studio混淆

这一篇说一下Android Studio的代码混淆: 第一步:要想使混淆生效,要修改项目(App)下的build.gradle一处内容:minifyEnabled  的值 设置为true,当前项目就可以使用混淆了. apply plugin: 'com.android.application' android { compileSdkVersion 24 buildToolsVersion "24.0.0" defaultConfig { applicationId "com