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的真实设备测试。

如果对软件测试、接口测试、自动化测试、面试经验交流。感兴趣可以加软件测试交流:1085991341,还会有同行一起技术交流。

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这样的支持多种测试框架的测试网格大受欢迎的原因。
以上内容就是本篇的全部内容以上内容希望对你有帮助,有被帮助到的朋友欢迎点赞,评论。

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

  1. <自动化测试>之<使用unittest Python测试框架进行参数化测试>

    最近在看视频时,虫师简单提到了简化自动化测试脚本用例中的代码量,而python中本身的参数化方法用来测试很糟糕,他在实际操作中使用了parameterized参数化... 有兴趣就查了下使用的方法,来 ...

  2. Android自动化测试 - MonkeyRunner(三) 随手练习测试脚本

    #coding=utf-8 import os import time #import MonkeyRunner three module from com.android.monkeyrunner ...

  3. Android 自动化测试

    Python +Android +uiautomator test  在init中定义的方法 uiautomator     该模块是android的一个python包装uiautomator测试框架 ...

  4. 自研测试框架ktest介绍(适用于UI和API)

    iTesting,爱测试,爱分享 在自动化测试的过程中,测试框架是我们绕不过去的一个工具,无论你是不需要写代码直接改动数据生成脚本,还是你需要检查测试结果甚至持续集成,测试框架都在发挥它的作用. 不同 ...

  5. Android开源测试框架学习

    近期因工作需要,分析了一些Android的测试框架,在这也分享下整理完的资料. Android测试大致分三大块: 代码层测试 用户操作模拟,功能测试 安装部署及稳定性测试 代码层测试 对于一般java ...

  6. Android自动化测试框架对比

    1.Monkeyrunner:优点:操作最为简单,可以录制测试脚本,可视化操作:缺点:主要生成坐标的自动化操作,移植性不强,功能最为局限:2.Rubotium:主要针对某一个APK进行自动化测试,AP ...

  7. 十大免费移动程序测试框架(Android/iOS)

    十大免费移动程序测试框架(Android/iOS) 概述:本文将介绍10款免费移动程序测试框架,帮助开发人员简化测试流程,一起来看看吧. Bug是移动开发者最头痛的一大问题.不同于Web应用程序开发, ...

  8. 简析Android 兼容性测试框架CTS使用

    一.什么是兼容性测试? 1)为用户提供最好的用户体验,让更多高质量的APP可以顺利的运行在此平台上 2)让程序员能为此平台写更多的高质量的应用程序 3)可以更好的利用Android应用市场 二.CTS ...

  9. Android 自动化测试框架

    Android常用的自动化测试工具框架: Monkey,MonkeyRunner,UIAutomator,Robotium,Appium,Monkey Talk...... 但这些工具框架都是什么呢有 ...

随机推荐

  1. HTML <body> 标签

    HTML <body> 标签 实例 一个简单的 HTML 文档,包含尽可能少的必需的标签: <!DOCTYPE html> <html> <head> ...

  2. PHP zip_entry_read() 函数

    定义和用法 zip_entry_read() 函数从打开的 zip 档案中获取内容.高佣联盟 www.cgewang.com 如果成功,该函数则返回项目的内容.如果失败,则返回 FALSE. 语法 z ...

  3. KMP,HASH,Trie,AC自动机

    我做个总结算了下午看了一下AC自动机和学习我的大生物(当然是多谢鑫神了)..完了要崩.. 1 KMP 只要是学过的人都觉得比较简单吧 但是学不会的人就感觉很难了,我是那种顿悟的然后感觉非常简单的人过程 ...

  4. 获取随机字符串(0~9,A~Z)

    /// <summary>        /// 生成随机数        /// </summary>        /// <param name="cod ...

  5. ABP使用Nginx代理导致租户ID(Abp.TenantId)丢失

    描述:ABP使用Nginx代理导致租户ID(Abp.TenantId)丢失,自定义header无效无法传递,导致租户选择认证失败.原因是因为 Nginx 过滤是“.”这符号. 解决: 1,先从代码人手 ...

  6. 【JSOI2007】文本生成器 题解(AC自动机+动态规划)

    题目链接 题目大意:给定$n$个子串,要求构造一个长度为$m$的母串使得至少有一个子串是其子串.问方案数. ------------------------ 我们可以对要求进行转化:求出不合法的方案数 ...

  7. Linux本地套接字(Unix域套接字)----SOCK_DGRAM方式

    目录 简述 创建服务端代码: 创建客户端代码 接收函数封装 发送封装 服务端测试main函数 客户端测试main函数 编译运行结果 简述 这里介绍一下Linux进程间通信的socket方式---Loc ...

  8. 023_go语言中的通道

    代码演示 package main import "fmt" func main() { messages := make(chan string) go func() { mes ...

  9. HTTP POST 请求的两种编码格式:application/x-www-form-urlencoded 和 multipart/form-data

    在常见业务开发中,POST 请求常常在这些地方使用:前端表单提交时.调用接口代码时和使用 Postman 测试接口时.我们下面来一一了解: 一.前端表单提交时 application/x-www-fo ...

  10. 02【Collection、泛型】

    主要内容 Collection集合 迭代器 增强for 泛型 第一章 Collection集合 1.1 集合概述 在前面基础班我们已经学习过并使用过集合ArrayList<E> ,那么集合 ...