关于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

HexView 脚本自动化工具:从刷写文件处理到批量转换实战

本文详细介绍了如何利用HexView脚本自动化工具高效处理嵌入式刷写文件。通过实战演示,文章展示了如何使用bat脚本实现S19、HEX等格式文件的剪切、填充、合并与批量转换,构建自动化流水线,从而显著提升汽车电子等领域的开发与生产效率。

weixin_29237635的博客 356

量化策略分享之ST股弱转强,回测年化123%

本策略的核心是精选ST股票,国九条过滤,防止直接暴雷退市,只做ST股票的弱转强,弱转强的认定标准是前日涨停但昨日不涨停,昨日收盘价大于前一日最低价,昨日收盘价大于10日线,昨日成交量大于前一日的成交量但小于前一日成交量的10倍,股价大于1;这类股票强势,有资金介入,能获得超额收益。

qq_29301281的博客 1268

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

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

gitblog_01155的博客 1054

HAL库移植实战:解决‘HAL_StatusTypeDef‘未定义报错的3个关键步骤

本文针对STM32开发中从标准库向HAL库移植时常见的'HAL_StatusTypeDef'未定义报错,提供了三个关键解决步骤:首先确保正确包含头文件入口,其次检查并配置模块使能宏,最后注意避免与标准库的同名结构体混用。文章通过实战案例解析了HAL库的模块化设计理念,帮助开发者高效解决混合编程中的编译问题。

book8的博客 208

Espresso之RecyclerView

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

白云天的博客 1123

Python 爬虫教程:财经新闻实时抓取(最新资讯 + 关键词提取)

在当今信息爆炸的时代,财经新闻的实时获取对于投资者、研究人员以及普通大众来说都具有重要的价值。通过 Python 爬虫技术,我们可以高效地抓取财经新闻,并提取其中的关键信息,以便更好地进行数据分析和决策支持。本文将详细介绍如何使用 Python 编写一个财经新闻实时抓取系统,并结合关键词提取技术,帮助读者快速掌握 Python 爬虫的核心技能。

yansideyucsdn的博客 1049

【AI大模型】DeepSeek + Kimi 高效制作PPT实战详解

AI赋能,使用DeepSeek 高效制作PPT实战详解

congge 1万+

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

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

woshizoe的专栏 2730

【MTK平台】【wpa_supplicant】关于wpa_supplicant/p2p_supplicant.c文件的介绍

本文主要介绍external/wpa_supplicant_8/wpa_supplicant/p2p_supplicant.c 这个文件这个文件里面有个核心的方法就是。

专业开发者的博客,一个从事Android WiFi和蓝牙的工程师 726

Appium Espresso Driver 项目推荐

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

gitblog_01074的博客 558

arcgis计算栅格平均值

打开FC栅格数据和非水体矢量数据 利用矢量数据提取对应栅格的非水体部分 2.1打开空间分析工具à提取分析à按掩膜提取 输入对应栅格数据和矢量数据 2.2提取结果如下 进行计算FC平均值 3.1打开空间分析工具à多元分析à波段集统计 输入对应栅格和输出路径 3.2统计结果如下 ...

Z_W_H_的博客 5371

淘宝母婴用品数据挖掘及可视化分析研究

1. 背景介绍 在当今的电子商务时代,母婴用品市场已经成为了各大电商平台的一片蓝海。淘宝作为中国最大的电子商务平台,其上的母婴用品交易数据自然引人关注。理解这些数据,可以帮助商家更好地制定营销策略,也可以帮助消费者更好地选择产品。因此,本文将对淘宝母婴用品的数据进行深入的挖掘和分析。 1.1 电子商务的

AI天才研究院 1258

ESPRESSO

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

weixin_44680165的博客 614

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

ESPResSo 开源项目教程

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

gitblog_00453的博客 685

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

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

STM32F407中文手册

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

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、付费专栏及课程。

余额充值