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(https://robotium.com/)是一个付费的Android Studio和Eclipse插件。这是一个很好的工具,可以快速的启动和运行测试。
- 可以作为持续集成的一部分运行。
- Robotium的选择语言是Java。
Robotium得到了Sauce Labs的支持,可以用于真实设备的测试。
结语
为您的项目选择正确的Android UI框架是一项很有挑战性的工作,在某些情况下,您可能需要使用多种工具来达到正确的平衡,这就是像Sauce Labs这样的支持多种测试框架的测试网格大受欢迎的原因。
相关推荐
二、Android自动化测试的重要性 1. 提高效率:自动化测试相比手动测试更快速,能够节省大量时间,尤其在回归测试阶段。 2. 减少错误:自动化测试能够准确地执行预定义的测试用例,避免人为疏忽导致的问题。 3. 可...
Python结合Appium与Android自动化测试框架的构建是一个高效且强大的测试解决方案,尤其在移动应用测试领域。本框架的核心是利用Python作为编程语言,Appium作为跨平台的自动化测试工具,以及Android SDK为运行环境,...
Cafe 测试框架是一款来自百度QA部门的具有开创性意义的Android平台的自动化测试框架,框架覆盖了Android自动化测试的各种需求。框架致力于实现跨进程测试、快速测试、深度测试,解决了Android自动化测试中的诸多难题...
首先,我们来了解一下Android自动化测试的基本概念。自动化测试是利用特定的测试工具和框架,编写可重复执行的测试脚本,代替人工执行测试用例的过程。对于Android应用,这通常涉及到UI测试、功能测试、性能测试等多...
Instrumentation是Google早期提供的Android自动化测试基础工具,它提供了一种低级别的接口来控制和监控应用的行为。虽然可以用来编写测试,但它较为底层,通常需要结合其他框架如JUnit或Robotium来实现更高级别的...
【Android自动化测试十三之MonkeyRunner自动化框架】 MonkeyRunner是Android SDK提供的一种强大的自动化测试工具,它允许开发者通过编写Python脚本来实现对Android设备或模拟器的控制,进行UI级别的自动化测试。...
为了进一步了解这个框架,我们需要解压文件,查看具体实现,包括测试用例的设计、自定义的断言方法、数据库连接的实现、以及如何集成Selenium或Appium进行UI自动化测试等。 总的来说,基于Java的UI自动化测试框架...
由于技术原因,OCR扫描出的文档可能会有文字识别错误或遗漏,但通过理解文章的大意,我们可以获得关于Android自动化测试的全面知识,并且了解到如何利用SwordAndroid等框架来提高开发效率和软件质量。对于初学者而言...
这个框架集成了多种自动化测试的能力,涵盖了从后端API到前端UI的全方位测试。 首先,接口自动化测试是针对应用程序的接口层进行的测试,主要验证服务之间的通信是否正常。它通常使用HTTP/HTTPS协议,通过发送请求...
《612931 腾讯Android自动化测试实战》是腾讯公司推出的关于Android自动化测试的专业教程,旨在帮助开发者和测试工程师掌握Android应用的自动化测试技术。这本高清版的教程带有详细的目录,便于读者按照章节进行系统...
这个名为"Android自动化测试项目"的资源提供了一个全面的框架,专为Android应用程序设计,旨在简化测试流程并增强测试覆盖率。下面我们将深入探讨这个框架所涉及的主要知识点。 首先,**自动化测试** 是一种利用...
### 四、Android自动化测试框架 #### 1. Espresso Espresso是谷歌推荐的Android UI测试框架,主要针对应用程序的界面元素进行测试。它提供了一系列简洁明了的API,可以帮助开发者快速构建和维护测试脚本。Espresso...
本资源“appium+android自动化测试源码”提供了一个基于Appium进行Android应用自动化测试的实际示例,适用于那些想要了解或实践Appium与Android自动化测试的开发者。 【描述】:“这是一个安卓基于appium自动化测试...
通过这个“robotium Android自动化测试范例”,你可以了解到如何使用Robotium进行各种UI测试,从连接应用到操控界面元素,再到生成测试报告。通过实践,你将能够更好地理解和掌握Android自动化测试的技巧,从而提升...
Android 自动化测试是一个新的领域,网上关于这方面的资料很多都是基于白盒测试的,一般都是基于 JUnit 框架和 Android SDK 中 android.test 等命名空间下的内容进行。然而,在很多软件公司中,白盒测试大部分也是...
该项目是一款基于Java的Android自动化测试框架,汇集了多种测试框架和技巧的实战案例。源码总共有507个文件,涵盖153个XML配置文件、58个Java源文件、89个PNG图片文件、35个JAR包文件、48个Gradle构建脚本、30个属性...