Android自动化测试,5个必备的测试框架

2023-10-27

Appium

Appium是一个开源的移动测试工具,支持iOS和Android,它可以用来测试任何类型的移动应用(原生、网络和混合)。作为一个跨平台的工具,你可以在不同的平台上运行相同的测试。为了实现跨平台的功能,Appium使用了供应商提供的Android UI框架来实施测试:在iOS中使用XCTest,在Android中使用UIAutomator或Instrumentation。它将这些供应商框架封装到Selenium WebDriver中,这使得使用Appium的开发者可以编写各种类型语言的测试:Java、Objective-C、JavaScript、PHP、Ruby、Python等等。这也使得编写Appium测试与编写Selenium测试非常相似。

WebDriver最初是为web测试创建的,Appium用额外的API方法扩展了WebDriver,使得它更适合于移动自动化。

以下是一些有用的Appium特性:

  • 不需要在设备上安装任何东西。
  • 不需要重新编译或改变应用程序来匹配Appium。
  • Appium有一个非常大而活跃的社区。
  • Appium附带一个扫描和分析应用程序的UI组件的工具——Appium UI Inspector。开发人员也可以使用Android Studio的UI Automator Viewer。
  • 如果你需要为iOS和Android编写测试,而你是一个Selenium的爱好者的话,Appium将是一个很好的选择。

 

Calabash

Calabash是由Xamarin公司开发和维护的一款开源的移动测试工具,支持iOS和Android上的原生和混合应用。Calabash测试支持手势识别(gesture)、断言(assertions)和屏幕截图(screenshots)等功能,通常与驱动开发测试工具Cucumber一起集成使用。

Xamarin在2017年宣布,它将对Calabash停止继续开发。鉴于此决定,你可以将Calabash作为一个不太理想的备选测试解决方案。

Espresso

Espresso是谷歌的一个Android UI框架。它是一个轻量级的、针对应用程序开发人员的白盒工具,这意味着要充分利用它,测试开发人员必须充分熟悉并且会使用应用程序代码。Espresso的测试非常可靠,并且运行速度很快,由于Espresso可以访问UI对象的内部,它可以用于测试WebView,即混合应用程序的开发。

Espresso的缺点是,它一次只能测试一个应用程序,而且无法访问设备资源。然而,通过使用UI Automator创建的联合测试可以很容易地解决这个问题。
Sauce Labs支持Espresso的真实设备测试。

 

UI Automator

UI Automator是由谷歌开发和维护的移动测试Android UI框架,它的主要功能包含了跨应用程序的功能测试,即测试多个应用程序和在已安装与系统应用程序之间的切换的功能。

UI Automator是一个黑盒测试工具,也就是说测试开发人员不需要知道内部的应用程序结构,可以完全依赖于可见的UI元素。UI Automator的测试是用Java编写的,由两组api组成:其一为UI Automator APIs,是控制应用程序的UI组件;其二为device state APIs,用于访问和执行设备上的操作(如改变设备旋转,按方向键按钮,按返回,Home或者菜单按钮等)。它还附带了一个非常有用的UI Automator Viewer,这是一个可以扫描和分析当前配置在设备上的UI组件的图形用户界面工具。

UI Automator的缺点是不支持构建在混合Android应用程序之上的WebView,因此,UI Automator只支持原生的Android应用程序。

Robotium

Robotium是一个开源的Android UI框架,它诞生于2010年,现在已经是一个非常成熟和稳定的工具。其最近的一个版本是5.6.3,发布于2016年9月。在最新的几个版本中,其测试可读性和测试执行的速度都有了显著提高。

大多数涉及到Robotium的技术博客、教程和课程都是黑盒测试类型的。但实际上,它算是灰盒测试的,因为编写Robotium测试需要了解内部应用程序结构。

以下是Robotium的部分主要特性:

  • 支持本机和混合应用程序。
  • 可以在真实设备和模拟器上运行测试。
  • 支持完整的Android UI工具:活动、按钮、菜单、toast、对话框等。
  • 支持手势。
  • 有一些设备控制功能:改变设备方向,截屏,解锁屏幕等。
  • Robotium recorder是一个付费的Android Studio和Eclipse插件。这是一个很好的工具,可以快速的启动和运行测试。
  • 可以作为持续集成的一部分运行。
  • Robotium的选择语言是Java。

Robotium得到了Sauce Labs的支持,可以用于真实设备的测试。

结语

为您的项目选择正确的Android UI框架是一项很有挑战性的工作,在某些情况下,您可能需要使用多种工具来达到正确的平衡,这就是像Sauce Labs这样的支持多种测试框架的测试网格大受欢迎的原因。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

 

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android自动化测试,5个必备的测试框架 的相关文章

随机推荐

  • cron每2天跑一次_cron 表达式

    Cron 表达式是一个字符串 分为 6 或 7 个域 每一个域代表一个含义 Cron 有如下两种语法格式 1 Seconds Minutes Hours Day Month Week Year 2 Seconds Minutes Hours
  • 【效率】Linux常用命令大全

    编者荐语 Linux命令是对Linux系统进行管理的命令 对于Linux系统来说 无论是中央处理器 内存 磁盘驱动器 键盘 鼠标 还是用户等都是文件 Linux系统管理的命令是它正常运行的核心 有一点一定要注意 和dos命令不同的是 Lin
  • 无向图的深度与广度优先遍历

    define CRT SECURE NO WARNINGS include
  • 游戏数据存储的四种常用方式

    原文地址 http blog csdn net xiaominghimi article details 6948046 首先向大家说句抱歉 可能一些童鞋看到我的微薄了 我说突然不想写博客了 是Himi的错 我不该发微薄让大家担心的 Him
  • SF授权系统源码 V3.7全开源无加密版本

    介绍 2023全新SF授权系统源码 V3 7全开源无加密版本 字节网盘 http zijieyunpan cn AtAcOXPv1Kj 阅览
  • Tracy 小笔记 Vue - 表单控件双向绑定

    v model 双向绑定 用来实现表单元素 input 和数据的双向绑定 原理 v module 其实是一个语法糖 它的背后本质上包含两个操作 v on input 和 v bind value
  • PAT C语言入门题目-7-31 掉入陷阱的数字 (15 分)

    7 31 掉入陷阱的数字 15 分 对任意一个自然数N 0 先将其各位数字相加求和 再将其和乘以3后加上1 变成一个新自然数N 1 然后对N 1 重复这种操作 可以产生新自然数N 2 多次重复这种操作 运算结果最终会得到一个固定不变的数N
  • java--基础--16.2--IO流--FileInputStream,FileOutputStream

    java 基础 16 2 IO流 FileInputStream FileOutputStream 1 字节流 字节流 字节输入流 InputStream 抽象类 int read 一次读取一个字节 int read byte bys 一次
  • 10年经验Python老司机分享:转行如何自学Python并且找到工作?

    目前信息化产业发展势头很好 互联网就成为了很多普通人想要涉及的行业 因为相比于传统行业 互联网行业涨薪幅度大 机会也多 所以就会大批的人想要转行来学习Python开发 零基础学习Python必须明确的几点 1 明确你将来是做什么工作的 需要
  • 动态规划经典问题之字符串最少修改次数

    题目描述 依旧是字符串处理 设A和B是两个字符串 我们要用最少的字符操作次数 将字符串A转换为字符串B 这里所说的字符操作共有三种 1 删除一个字符 2 插入一个字符 3 将一个字符改为另一个字符 对任给的两个字符串A和B 计算出将字符串A
  • antd Pro脚手架安装踩坑

    1 node安装 2 初始化 npm i ant design pro cli g 3 创建项目文件夹 pro create myapp 出现问题 无法加载文件 C Users AppData Roaming npm cnpm ps1 因为
  • springcloud项目详解一:基本部署

    1 是什么 springcloud是一系列框架的有序集合 它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发 如服务发现注册 配置中心 消息总线 负载均衡 断路器 数据监控等 都可以用Spring Boot的开发风
  • CS285课程笔记(5.(1))——从概率图角度理解强化学习(变分推断原理+VAE)

    Lecture 18 19 2020版 这两节课的核心内容就是如何把强化学习问题 又可以称为最优控制问题 转化为一个基于概率图模型的推断问题 这里的推断又可以进一步细分为精确推断 Exact Inference 和近似推断 Approxim
  • Flutter AudioPlayer单例模式

    一 前言 一般情况下 audioPlayer最好设置成单例模式 这样在跨页面操作时会更好的使用 确保所有对象都访问一个实例 二 引用 audioplayers 功能 控制mp3文件播放 地址 https pub dev packages a
  • LAStools

    LASlib with LASzip DLL are LAStools http www cs unc edu isenburg lastools
  • ctfshow-WEB-web7

    ctf show WEB模块第7关是一个SQL注入漏洞 注入点是数值型注入 源码中过滤了空格 我们可以使用括号 或者注释 来代替空格 页面中有一个文章列表 随便点一个 从url地址栏中可以看到 页面通过文章的id值来查询文章内容 我们可以考
  • SAS EM之SAS Credit Scoring不能使用

    SAS EM之SAS Credit Scoring不能使用 关于SAS EM找不到记分卡问题 我们要去看SAS Credit Scoring license有没有许可 未许可的话是不能使用的 这是我之前不能使用的截图 是没有信用评分这个节点
  • vue项目中使用神策进行数据埋点

    前言 在vue种使用神策进行数据埋点 一 数据埋点的意义 所谓埋点就是在应用中特定的流程收集一些信息 用来跟踪应用使用的状况 后续用来进一步优化产品或是提供运营的数据支撑 包括访问数 Visits 访客数 Visitor 停留时长 Time
  • 什么是轴向注意力(Axial Attention)机制

    Axial Attention 轴向注意力 有行注意力 row attention 和列注意力 column attention 之分 一般是组合使用 原文阅读 https arxiv org pdf 1912 12180v1 pdf se
  • Android自动化测试,5个必备的测试框架

    Appium Appium是一个开源的移动测试工具 支持iOS和Android 它可以用来测试任何类型的移动应用 原生 网络和混合 作为一个跨平台的工具 你可以在不同的平台上运行相同的测试 为了实现跨平台的功能 Appium使用了供应商提供