关于Android的自动化测试,你需要了解的5个测试框架

发表于:2023-10-24 09:54

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:TwoBeesAllNotTobi    来源:稀土掘金

  Appium
  Appium是一个开源的移动测试工具,支持iOS和Android,它可以用来测试任何类型的移动应用(原生、网络和混合)。作为一个跨平台的工具,你可以在不同的平台上运行相同的测试。为了实现跨平台的功能,Appium使用了供应商提供的AndroidUI框架来实施测试:在iOS中使用XCTest,在Android中使用UIAutomator或Instrumentation。它将这些供应商框架封装到SeleniumWebDriver中,这使得使用Appium的开发者可以编写各种类型语言的测试:Java、Objective-C、JavaScript、PHP、RubyPython等等。这也使得编写Appium测试与编写Selenium测试非常相似。
  WebDriver最初是为web测试创建的,Appium用额外的API方法扩展了WebDriver,使得它更适合于移动自动化。
  以下是一些有用的Appium特性:
  ·不需要在设备上安装任何东西。
  · 不需要重新编译或改变应用程序来匹配Appium。
  · Appium有一个非常大而活跃的社区。
  · Appium附带一个扫描和分析应用程序的UI组件的工具——AppiumUIInspector。开发人员也可以使用AndroidStudio的UIAutomatorViewer。
  · 如果你需要为iOS和Android编写测试,而你是一个Selenium的爱好者的话,Appium将是一个很好的选择。
  Calabash
  Calabash是由Xamarin公司开发和维护的一款开源的移动测试工具,支持iOS和Android上的原生和混合应用。Calabash测试支持手势识别(gesture)、断言(assertions)和屏幕截图(screenshots)等功能,通常与驱动开发测试工具Cucumber一起集成使用。
  Xamarin在2017年宣布,它将对Calabash停止继续开发。鉴于此决定,你可以将Calabash作为一个不太理想的备选测试解决方案。
  Espresso
  Espresso是谷歌的一个AndroidUI框架。它是一个轻量级的、针对应用程序开发人员的白盒工具,这意味着要充分利用它,测试开发人员必须充分熟悉并且会使用应用程序代码。Espresso的测试非常可靠,并且运行速度很快,由于Espresso可以访问UI对象的内部,它可以用于测试WebView,即混合应用程序的开发。
  Espresso的缺点是,它一次只能测试一个应用程序,而且无法访问设备资源。然而,通过使用UIAutomator创建的联合测试可以很容易地解决这个问题,这篇文章可以很好的解释如何实施。
  SauceLabs支持Espresso的真实设备测试。
  UIAutomator
  UIAutomator是由谷歌开发和维护的移动测试AndroidUI框架,它的主要功能包含了跨应用程序的功能测试,即测试多个应用程序和在已安装与系统应用程序之间的切换的功能。
  UIAutomator是一个黑盒测试工具,也就是说测试开发人员不需要知道内部的应用程序结构,可以完全依赖于可见的UI元素。UIAutomator的测试是用Java编写的,由两组api组成:其一为UIAutomatorAPIs,是控制应用程序的UI组件;其二为devicestateAPIs,用于访问和执行设备上的操作(如改变设备旋转,按方向键按钮,按返回,Home或者菜单按钮等)。它还附带了一个非常有用的UIAutomatorViewer,这是一个可以扫描和分析当前配置在设备上的UI组件的图形用户界面工具。
  UIAutomator的缺点是不支持构建在混合Android应用程序之上的WebView,因此,UIAutomator只支持原生的Android应用程序。
  Robotium
  Robotium是一个开源的AndroidUI框架,它诞生于2010年,现在已经是一个非常成熟和稳定的工具。其最近的一个版本是5.6.3,发布于2016年9月。在最新的几个版本中,其测试可读性和测试执行的速度都有了显著提高。
  大多数涉及到Robotium的技术博客、教程和课程都是黑盒测试类型的。但实际上,它算是灰盒测试的,因为编写Robotium测试需要了解内部应用程序结构。
  以下是Robotium的部分主要特性:
  · 支持本机和混合应用程序。
  · 可以在真实设备和模拟器上运行测试。
  · 支持完整的AndroidUI工具:活动、按钮、菜单、toast、对话框等。
  · 支持手势。
  · 有一些设备控制功能:改变设备方向,截屏,解锁屏幕等。
  · Robotiumrecorder(https://robotium.com/)是一个付费的AndroidStudio和Eclipse插件。这是一个很好的工具,可以快速的启动和运行测试。
  · 可以作为持续集成的一部分运行。
  · Robotium的选择语言是Java。
  Robotium得到了SauceLabs的支持,可以用于真实设备的测试。
  结语
  为您的项目选择正确的AndroidUI框架是一项很有挑战性的工作,在某些情况下,您可能需要使用多种工具来达到正确的平衡,这就是像SauceLabs这样的支持多种测试框架的测试网格大受欢迎的原因。
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号