Android自动化测试之——总述

2024-04-11 16:58

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

Android自动化测试之——总述


JUnit 和 Instrumented JUnit

Android测试是基于JUnit,可以分为两大类:

  • 依赖本地JVM的JUnit测试, 测试用例在module-name/src/test/java/ 目录下, 不能访问Android框架功能;
  • 依赖Android手机的设备化测试, 测试用例在 module-name/src/androidTest/java/ 目录下; 必须要运行在Android真机或虚拟机;

两者的对比如下:
这里写图片描述

test typesdescription
Local unit test测试用例只在本地JVM上运行, 当测试用例中没有Android框架或者可以mock Android框架时,这类测试用例可以最大化的减少运行时间
Instrumented unit test测试用例必须要运行在Android设备或者虚拟机上, 可以获取设备信息等一系列信息, eg: Contex;
Components within your app only集成测试,UI测试,只能在一个app内部进行测试,eg:Espresso;
Cross-app Components集成测试,UI测试,可以跨多个app进行测试,eg:UI Automator;

公共API

  • @Before: 测试用例初始化操作,在测试类内部的每个测试方法运行之前都会运行一次该初始化方法,可以定义多个以@Before注释的方法;

  • @After: 测试用例收尾,包括释放资源和内存等。在测试类内部的每个测试方法运行之后都会运行一次该初始化方法,可以定义多个以@After注释的方法;

  • @Test: 标示一个测试方法;

  • @Rule: 为了灵活并且重复定义每个测试方法的表现形式,Android测试中主要有ActivityTestRule 和 ServiceTestRule;

  • @BeforeClass: 测试的初始化方法,和@Before的区别在于:@BeforeClass注释的方法在整个测试类中只运行一次,主要用于一些比较耗时或者耗费资源的操作;

  • @AfterClass: 测试的初始化方法,和@After的区别在于:@AfterClass注释的方法在整个测试类中只运行一次,主要用来释放资源;

  • @Test(timeout=expectedTime): 超时测试,用例耗时超过一个确定的时间则判断该测试用例失败,eg: @Test(timeout=5000);

  • @Test(expected ...): 异常测试,期望测试方法抛出异常;

  • @Ignore: 跳过某个测试方法不执行;

Android Testing Support Library

Android Testing Support Library提供了一组APIs,利用这些APIs可以快速的建立和运行测试用例,包括JUnit测试和UI测试,包括以下几类API:

  • Espresso: UI测试框架,只能在一个app内部,不能跨app测试;

  • UI Automator: UI测试框架,可以跨多个app进行测试;

  • AndroidJUnitRunner: 针对android的junit4 测试框架;

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



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

相关文章

使用Python进行GRPC和Dubbo协议的高级测试

《使用Python进行GRPC和Dubbo协议的高级测试》GRPC(GoogleRemoteProcedureCall)是一种高性能、开源的远程过程调用(RPC)框架,Dubbo是一种高性能的分布式服... 目录01 GRPC测试安装gRPC编写.proto文件实现服务02 Dubbo测试1. 安装Dubb

Python的端到端测试框架SeleniumBase使用解读

《Python的端到端测试框架SeleniumBase使用解读》:本文主要介绍Python的端到端测试框架SeleniumBase使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全... 目录SeleniumBase详细介绍及用法指南什么是 SeleniumBase?SeleniumBase

Android DataBinding 与 MVVM使用详解

《AndroidDataBinding与MVVM使用详解》本文介绍AndroidDataBinding库,其通过绑定UI组件与数据源实现自动更新,支持双向绑定和逻辑运算,减少模板代码,结合MV... 目录一、DataBinding 核心概念二、配置与基础使用1. 启用 DataBinding 2. 基础布局

Android ViewBinding使用流程

《AndroidViewBinding使用流程》AndroidViewBinding是Jetpack组件,替代findViewById,提供类型安全、空安全和编译时检查,代码简洁且性能优化,相比Da... 目录一、核心概念二、ViewBinding优点三、使用流程1. 启用 ViewBinding (模块级

详解如何使用Python构建从数据到文档的自动化工作流

《详解如何使用Python构建从数据到文档的自动化工作流》这篇文章将通过真实工作场景拆解,为大家展示如何用Python构建自动化工作流,让工具代替人力完成这些数字苦力活,感兴趣的小伙伴可以跟随小编一起... 目录一、Excel处理:从数据搬运工到智能分析师二、PDF处理:文档工厂的智能生产线三、邮件自动化:

Python实现自动化Word文档样式复制与内容生成

《Python实现自动化Word文档样式复制与内容生成》在办公自动化领域,高效处理Word文档的样式和内容复制是一个常见需求,本文将展示如何利用Python的python-docx库实现... 目录一、为什么需要自动化 Word 文档处理二、核心功能实现:样式与表格的深度复制1. 表格复制(含样式与内容)2

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

pytest+allure环境搭建+自动化实践过程

《pytest+allure环境搭建+自动化实践过程》:本文主要介绍pytest+allure环境搭建+自动化实践过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、pytest下载安装1.1、安装pytest1.2、检测是否安装成功二、allure下载安装2.

如何基于Python开发一个微信自动化工具

《如何基于Python开发一个微信自动化工具》在当今数字化办公场景中,自动化工具已成为提升工作效率的利器,本文将深入剖析一个基于Python的微信自动化工具开发全过程,有需要的小伙伴可以了解下... 目录概述功能全景1. 核心功能模块2. 特色功能效果展示1. 主界面概览2. 定时任务配置3. 操作日志演示

python多线程并发测试过程

《python多线程并发测试过程》:本文主要介绍python多线程并发测试过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、并发与并行?二、同步与异步的概念?三、线程与进程的区别?需求1:多线程执行不同任务需求2:多线程执行相同任务总结一、并发与并行?1、