关于Espresso技术概要

Espresso 自动化测试 (六) - onData()的使用 在上一篇文章我们已经知道了简单的onData的使用了,但是我们都知道,在真正的测试中,我们的ListView或者GridView不可能为这么简单的数据的,所以我们还是需要用一些复杂的数据来进行测试。 SimpleAdapter对于Android有一定了解的应该都对它有一定的了解吧。SimpleAdapter的构造函数是:public SimpleAdapter (Context context, L 阅读详情

1,实际上提到的view就相当于Element,例如onView(withId(R.id.view))

2,有些时候,一个R.id的值被多个views共享,这时会出现:AmbiguousViewMatcher Exception。这里需要找到view的唯一标识属性,例如:

onView(allOf(withId(R.id.view), withTest("Hello!")))

onView(allOf(withId(R.id.view), not(withTest("unwanted"))))
3,对于一个好的Apps,所有的views对于一个用户来说都应该是包含描述性的text或者有一个内容描述。如果你通过withTest / withContent Description找不到这个view,可以报一个accessibility bug。

4,如果满足条件的话,优先选择R.id

5,Perform操作:perform.(click()),    perform(typeText("Hello"), click()),     perform(scrollTo(), click()),    perform(swipeRight())

6,AdapterView 是一种通过Adapter来动态加载数据的界面元素,常用的有ListView, GridView, Spinner 等都属于AdapterView。不同于我们之前提到的静态的控件,AdapterView 在加载数据时,可能只有一部分显示在屏幕上,对于没有显示的那部分数据,通过onView()是没有办法找到的。于是,Espresso提供了如下方法来查找元素:onData()

onData(allOf(is(instanceOf(String.Class)), is("Americano"))).perform(click())

【注】实际上现在可以通过RecyclerView来替换AdapterView,可以查看:http://blog.youkuaiyun.com/seaee/article/details/52094255

7,匹配一个View旁边的另一个View

onView(allOf(withTest("7"), hasSibling(withText("item:0")))).perform(click())
8,JUnit4 Rules,有两种Rules当test with AndroidJUnitRunner,第一种是ActivityTestRule,另一种是ServiceTestRule

ActivityTestRule:提供针对一个Activity 的功能测试,这个Activity will be 启动 before each of @Test 以及 Before any method of @Before. 它将在test完成和@after 方法完成之后结束。

9,匹配Map类型的view, 例如 Map<String, Object>

onData(allOf(is(instanceOf(Map.Class)), hasEntry(equal("STR"), is("item:50")))).perform(click())
10,匹配一个指定view的子view

onData(allOf(is(instanceOf(Map.class)), hasEntry(equal("STR"), is("item:50")))).onChildView(withId(R.id.item.size)).perform(click())
11,匹配一个包含在操作栏(ActionBar)的view

有两种不同的action bars, <1> Normal ActionBar <2> Contextual Action Bar 上下文操作栏

上下文操作栏:所有操作按钮都是出现在ActionBar的位置。

(1)匹配可见的icon:

<1> Normal ActionBar : onView(withId(R.id.xxx))

<2> Contextual Action Bar: onView(withId(R.id.xxx))

(2)匹配overflow menu中的view:

<1> Normal ActionBar:openActionBarOverflowOrOptionsMenu(getInstrumentation().getTargetContext())

<2> Contextual Action Bar: openContextualActionModeOverflowMenu()

12,断言一个view is not displayed

import static org.hamcrest.Matchers.not

onView(withId(R.id.bottom_left)).check(matches(not(isDisplayed())));
13,断言一个view is not present

onView(withId(R.id.bottom_left)).check(doesNotExist());

14,Espresso Web用于自动化测试web元素。

15,通过方法onView()可以获取某个控件的对象,即ViewInteraction。

onView() 有两个方法来获取对象,可以通过withText,例如 ViewInteraction vi_text = onView(ViewMatchers.withText("通过该文本"))。

还可以通过withId,例如 ViewInteraction vi_id = onView(ViewMatchers.withId(R.id.id2))。


Reference: https://google.github.io/android-testing-support-library/docs/espresso/index.html

Android自动化测试技术——Espresso的使用 在介绍的操作之前,我们先要看看如何自定义Matcher和ViewAction。MatcherMatcher是一个用来匹配视图的接口,常用的是它的两个实现类和:一些匹配的语法糖,可以让你创建一个给定的类型,而匹配的特定亚型的只有过程项匹配。 - 匹配器的期望类型。 - T的亚型:内部实现了空检查,检查的类型,然后进行转换示例:输入EditText值,如果值以000开头,则让内容为“成功”的TextView可见,否则让内容为失败的TextView可见. 阅读详情

相关推荐

Quantum ESPRESSO:特点、组成、优势、流程

Quantum ESPRESSO:特点、组成、优势、流程

LIKEYYLL的博客 1999

Espresso——功能方法介绍

本文通过代码实例来分析Exprees的具体功能方法。 1、通过方法onView()可以获取某个控件这个对象,即ViewInteraction。 onView()有两个方法来获取对象: withText:通过文本来获取对象 例如: ViewInteraction vi_text = onView(ViewMatchers.withText("通过该文本")) ; withId:通过

ShanDong_Chu 4823

Google Espresso 环境搭建以及简单使用教程

2013 GTAC谷歌介绍了Android平台自动化测试框架“Espresso”(Video, Slides),10月18号谷歌正式开放“Espresso”,使用Espresso可以写出简洁,漂亮并且可靠的Android UI测试。例如:@Test public void greeterSaysHello() { onView(withId(R.id.name_field)).perform(t

Manchester丶Lee 2889

Android的UI自动化测试(Espresso进阶)

onData onView()方法采用hamcrest适配器,用于匹配当前视图结构中有且仅有一个的控件。在大多数情况下onView()可以满足我们在测试过程中对于控件定位的需求。但是,在处理AdapterView的时候,由于AdapterView的数据源可能很长,很多时候无法一次性将所有数据源显示在屏幕上,对于没有显示在屏幕上的那部分数据,我们通过onView()是没有办法找到的。 常见的Lis...

总是一点点 1159

linux的sob目录,Quantum ESPRESSO在Linux下的安装方法

Quantum ESPRESSO在Linux中的安装方法文/Sobereva@北京科音First release: 2020-Jul-10 Last update: 2020-Jul-231 前言Quantum ESPRESSO (QE)是用户非常多、极为流行的第一性原理程序,而且完全开源免费。本文介绍一下QE在Linux下的安装过程。本文对于CentOS 7.x系列系统下安装QE 6.5是完全...

weixin_39781186的博客 1439

分子动力学仿真软件:ESPResSo_(1).ESPResSo软件介绍

非键相互作用:使用定义非键相互作用,如Lennard-Jones势。键相互作用:使用定义键相互作用,如FENE键。ESPResSo允许用户自定义相互作用。return 0.0else:return 0.0else:# 创建仿真系统# 设置周期性边界条件# 添加粒子# 定义自定义相互作用# 设置仿真参数# 运行仿真用户可以自定义分析工具来处理仿真结果。# 创建仿真系统# 设置周期性边界条件# 添加粒子# 定义相互作用# 设置仿真参数# 运行仿真# 计算径向分布函数。

kkchenjj的博客 1516

espresso之Views获取

espresso 目前尚不能处理多个View , 不论是 onData 还是其他 , 都只能操作唯一匹配的View . 如果多个view被匹配 , 将抛出 AmbiguousViewMatcherException 这个异常 , 那么我们想循环遍历操作一组同类的views时 将变得不太现实 . 举个例子有一波 Text 相同的View , 我想全部点击一遍 , 一个个的通过复杂定位去点击 , 显然不

木叶霜枫飘零去 , 落雨寒江清风还 824

activity test

主要使用ActivityUnitTestCase和ActivityInstrumentationTestCase2测试activity

Android自动化测试框架---Espresso(2)

上一篇文章介绍了有关android自动化测试的环境搭建,以及Espresso的简单用法,这篇文章主要针对一些比较复杂的控件,不易通过查找元素的方式寻找。 原文可见:https://segmentfault.com/a/1190000004392396AdapterViewAdapterView是一种通过Adapter来动态加载数据的界面元素。我们常用的ListView, GridView, Spi

seven_forjob的专栏 1151

小白学电路之cadance搭建buffer电路

Buffer(缓冲器)是一种放大器或驱动电路,主要用于隔离输入和输出,以防止负载对前级电路造成干扰或影响。本文作者在电路方面是小白水平,目前正在学习,有不足之处欢迎指正。3.创建新的cellview,对此buffer进行仿真验证。2.创建buffer的symbol。电路中的V2的详细参数。

weixin_58051657的博客 1990

LSTM模型 轨迹经纬度预测

原始时间序列数据如下所示,我们只取前两列纬度和经度作为输入数据 我们设定用前六个位置信息预测下一个位置,则两个样本的输入输出数据如下所示: 创建LSTM网络训练模型: import numpy as np from keras.layers.core import Dense, Activation, Dropout from keras.layers import LS...

Muzi_Water的博客 2万+

告别固定等待:espresso-samples用repeatedlyUntil循环重试Espresso断言的简单方法

在 Android UI 自动化测试中,**Espresso 断言**经常因为界面尚未更新而失败,很多新手只能靠 `Thread.sleep()` 固定等待来"祈祷"测试通过。开源示例集 **espresso-samples** 中的 repeatedly-until 示例,用 **repeatedlyUntil 循环重试**一招解决了这个问题:让 Espresso 反复执行同一个操作,直到断言条

gitblog_01155的博客 1054

链路聚合Eth-trunk以及华为交换机配置实例

链路聚合简介 以太网链路聚合Eth-Trunk简称链路聚合,它通过将多条以太网物理链路捆绑在一起成为一条逻辑链路,从而实现增加链路带宽的目的。同时,这些捆绑在一起的链路通过相互间的动态备份,可以有效地提高链路的可靠性。 目的: 随着网络规模不断扩大,用户对骨干链路的带宽和可靠性提出越来越高的要求。在传统技术中,常用更换高速率的接口板或更换支持高速率接口板的设备的方式来增加带宽,但这种方案需要付出高额的费用,而且不够灵活。 采用链路聚合技术可以在不进行硬件升级的条件下,通过将多个物理接口捆绑为一个逻辑接口

ChaseAug的博客 2万+

Espresso之RecyclerView

测试RecyclerView需要导入 androidTestImplementation 'androidx.test.espresso:espresso-contrib:3.2.0' 使用示例 //actionOnItemAtPosition的第一个参数是recycleview的item位置 //第二个参数是对应的动作 Espresso.onView(ViewMatchers.with...

白云天的博客 1123

蓄热式加热炉燃烧技术

蓄热式加热炉燃烧技术

weixin_37928884的博客 2734

瑞萨单片机,把CS文件转换为CC

1、打开CC的软件: 点击坐上角的"START" 点击"Create New Project"的"GO": 导入工程: 如下图设置后,点击"Create" 2、进入到CC的开发界面: 可以看到原启动库文件以asm文件的方式直接出现在工程中: 删除新生成的main.c,保留导入的r_main.c(以你自己的代码为准): 注意添加所有的头文件路径: 点击"...

weixin_37611121的博客 1228

Espresso学习笔记二:Espresso基础知识

http://blog.youkuaiyun.com/miaoqilong/article/details/46650903 版权声明:本文为博主原创文章,未经博主允许不得转载。 一. Espresso基础知识 Espresso包含4个主要组件: 1. Espresso:和view交互的入口点(通过onView和OnData),还有一些与view无关的APIs(如:

woshizoe的专栏 2730

【原创教程】西门子1500与施耐德伺服的通讯以及调试

该函数块主要描述伺服的手动,左边的引脚Forward是指伺服手动正转,Backward是指伺服手动反转,Fast是指手动的某个方向为快速运行,TipPos手册上描述为固定值,WaitTIme是指伺服手动的相应时间,VeloSlow指伺服手动正常慢速运动的速度,VeloFast指伺服手动快速运动的速度,Acceleration是指伺服手动的加速度,Decelertion是指伺服手动的减速度。该函数块用于伺服停止,左边的引脚Execute为伺服停止执行,Deceleration含义为减速,Axis为轴。

Qinmingyue13的博客 1375

Appium Espresso Driver 项目推荐

Appium Espresso Driver 项目推荐 项目基础介绍和主要编程语言 Appium Espresso Driver 是 Appium 框架的一部分,专门用于 Android 平台的测试自动化。该项目的主要编程语言包括 Node.js 和 Kotlin,其中 Node.js 用于驱动部分,确保 Espresso 服务器与 Appium 之间的通信,而 Kotlin 则用于服务器部分,运...

gitblog_01074的博客 558

Linux脚本实战之SSH执行远端脚本

Linux脚本实战之SSH连接主机

jks212454的博客 2134

群晖、飞牛NAS容器进入终端失败?一步步教你解决Docker Bash错误!(OCI runtime exec failed: exec failed)

群晖、飞牛NAS容器进入终端失败?一步步教你解决Docker Bash错误!(OCI runtime exec failed: exec failed)

XiaoqiangClub的博客 2998

ESPRESSO

android自动化测试 ESPRESSO的使用详解 ESPRESSO studio3.5版本 新的改变 大家可以去各大招聘网站上看看,大部分公司都要求开发人员会编写测试用例或使用框架或工具进行测试,并且大公司要求更甚. 这下还有什么好说的吗?单元测试是一个硬要求,即便你不喜欢单元测试,但是如果你想进入一个理想的公司,这是必备的一个技能,所以无论如何你都要去学习的,反正技多不压身,所以我们更得去使...

weixin_44680165的博客 614

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

ESPResSo 开源项目教程

ESPResSo 开源项目教程 项目介绍 ESPResSo(Extensible Simulation Package for Research on Soft matter systems)是一个用于模拟软物质系统的开源软件包。它支持多种模拟方法,包括分子动力学、布朗动力学和耗散粒子动力学等。ESPResSo 主要用于研究聚合物、胶体、液晶和生物分子等软物质系统的物理性质。 项目快速启动 安装 ...

gitblog_00453的博客 685

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Android Espresso

In this tutorial, we’ll be discussing Espresso Testing Framework for Testing the UI of Android Applications. We’ll be creating a basic login application with a few espresso tests. 在本教程中,我们将讨论用于测试Andro...

从零开始的教程世界 2702

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

android espresso 教程,Espresso 设置说明

本指南介绍如何使用 SDK 管理器安装 Espresso 以及如何使用 Gradle 构建 Espresso 测试。建议您使用 Android Studio。设置测试环境为了避免测试不稳定,我们强烈建议您在用于测试的虚拟或物理设备上关闭系统动画。在您的设备上,在设置 > 开发者选项下,停用以下三项设置:窗口动画缩放过渡动画缩放Animator 时长缩放添加 Espresso 依赖项要将 Es...

weixin_39553705的博客 1063

Quantum ESPRESSO 终极指南:从零开始掌握电子结构计算

想要探索材料的微观世界,揭开电子运动的奥秘吗?Quantum ESPRESSO作为功能强大的开源电子结构计算软件包,为研究人员提供了从基础材料分析到复杂量子模拟的完整解决方案。这个基于密度泛函理论(DFT)的计算平台,让电子结构计算变得简单高效,即使是新手也能快速上手。 ## 🎯 为什么选择Quantum ESPRESSO? **完全免费的开源软件**,基于GPL许可证,用户可以自由使用和修

gitblog_00892的博客 1271
上一篇: 如何在Android Studio使用Espresso框架自动化测试
下一篇: DTE参数和DTE run
Seaee
博客等级 码龄17年 7粉丝 66原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值