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

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这样的支持多种测试框架的测试网格大受欢迎的原因。

​现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:485187702【暗号:csdn11】

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 希望能帮助到你!【100%无套路免费领取】

  • 12
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值