5个超好用手机开源自动化工具,哪个适合你?

自动化测试在产品测试上有着非常重要的作用。实现测试自动化有多种积极的方式,包括:

最大限度地减少测试执行时间;

在关键的发布阶段,用更少的时间确保更大的覆盖范围;

在产品开发阶段,可靠又重复性地运行以确保没有引进回归问题,最大限度地减少重复性回归测试循环时的人为错误和疏忽的风险。

在市场上有很多可用的工具,开源的或要付费的。虽然付费和开源工具各有利弊,但是后者在自动化测试社区得到了广泛的应用。

根据项目需求来选择合适的自动化工具是非常棘手的。下面介绍5个最佳的iOS和Android开源自动化工具。

Appium(Android和iOS)

Appium是Sauce Labs出品的一个开源的自动化测试框架,用于原生、混合和移动的Web App。

框架内的Appium库函数调用Appium服务器是在操作连接设备的后台运行的。它在内部使用JSONWireProtocol,来与使用Selenium的WebDriver的iOS和Android App进行互动。

不像Calabash只支持Ruby开发,在框架中使用Appium时,你可以从Java、Python和Ruby以及所有其他Selenium WebDriver支持的语言中选择。

Appium服务器被托管在Node服务器上,你可以通过触发一组Node命令来启动Appium服务器。使用Appium Standalone Application作为服务器(从Appium网站下载),Inspector工具可对App的所有定位器提供查找/识别/操作的能力。

优点:

支持多种语言,不需要访问源代码,跨平台脚本开发,大型社区支持,支持Mac上的脚本记录;

使用Appium Server应用程序的Inspector工具提取标识符;

通过Appium Server的桌面应用程序对Selendroid内置支持;

它还使用供应商提供的框架:适用于iOS的UIAutomation,分别适用于Android 4.2+和 2.3+的UIAutomator和Selendroid;

支持物理设备与仿真器,支持原生,混合和移动的web自动化应用程序。

缺点:

Appium Server桌面应用程序的发布常常不稳定;

脚本记录不适用于Application服务器对于Windows OS的桌面应用程序。

Calabash(Android和iOS)

Calabash是一个开源的验收测试框架,支持Android和iOS自动化。Calabash为Android和iOS自动化测试提供了一个单独的库,是一个跨平台的框架,支持 Cucumber,Cucumber能让你用自然的英语语言表述App的行为,实现BDD(Behavior Driven Development,行为驱动开发)。

Calabash提供了一个桥梁,允许Cucumber测试对iOS和Android运行和验证。Cucumber测试使用一列语句写入,这些语句会形成很多测试场景。Cucumber中的所有语句使用Ruby定义。

在Calabash,Cucumber语句只能被定义一次,但可以在Cucumber脚本的不同场景中重复使用。

实际测试是用Gherkin写的,依靠Ruby代码的支持,并在Cucumber框架的上下文中运行。

优点:

大型社区支持,使用起来简单,类似英语表述的测试语句;

支持在屏幕上的所有动作,如滑动、缩放、旋转、敲击等;

是大型且热心的社区,跨平台开发支持(同样的代码在Android和iOS设备中都适用)。

缺点:

测试步骤失败后,将跳过所有的后续步骤。这可能会导致错过更严重的产品问题;

需要时间来进行测试,因为它首先总是默认安装App。但是,这种设置可以通过在代码中配置一个钩子(hook)覆盖掉;

需要Calabash框架安装在iOS的ipa文件中,且我们必须要有iOS的App代码;

除了Ruby,对其他语言不友好。

Robotium(Android)

Robotium是一个开源的测试框架,用于开发功能性、系统和验收测试场景。它与Selenium非常相似,除了Robotium只适用于Android,注册在Apache License 2.0下。

因为它不但简单,而且又具有创建强大又可靠的自动化场景的能力,因而在自动化测试社区广泛流行。

它采用运行时绑定到GUI组件,安装了一个测试用例套件作为在Android设备或仿真器上的应用程序,并提供用于执行测试的真实环境。

优点:

容易在最短的时间内编写测试脚本,预装自动化App是可能的,自动跟随当前activity;

由于运行时绑定到GUI组件,所以相比Appium,它的测试执行更快、更强大,不访问代码或不知道App实现,也可以工作;

支持Activities、Dialogs、Toasts、Menus、Context Menus和其他Android SDK控件。

缺点:

不能处理flash和Web组件,支持Java开发,在旧设备上会变得很慢;

由于不支持iOS设备,当自动化测试同时覆盖 Android与iOS的情况时,测试会被中断;

没有内置的记录和回放功能,使用记录功能需要TestDroid和Robotium Recorder这样收费工具。

Frank(iOS)

Frank是一个iOS App的自动化框架,允许使用Cucumber编写结构化英语句子的测试场景。

Frank要求测试时在应用程序内部编译,这意味着对源代码的改变是强制性的。这是一个使用Cucumber和JSON组合命令的工具,命令发送到在本地应用程序内部运行的服务器上,并利用UISpec运行命令。

优点:

测试场景是在Cucumber的帮助下,用可理解的英语句子写的;

Symbiote——包含实时检查工具;

如果团队有关于Web Selenium和Cucumber自动化框架的经验,也有效;

活跃的社区支持以及不断扩大的库。

缺点:

对手势的支持有限,在设备上运行测试有点难;

修改配置文件需要在实际设备上运行,记录功能不可用。

UIAutomator(Android)

UIAutomator是由谷歌提供的测试框架,它提供了原生Android App和游戏的高级UI测试。这是一个包含API的Java库,用来创建功能性UI测试,还有运行测试的执行引擎。

该库自带Android SDK,有很多教程可供初学者上手。优点是它在运行访问不同的进程时,会给JUnit测试案例特权。虽然这对本地自动化App既好又更简单,但是它对 Web自动化视图非常有限或几乎没有任何支持。

它仅支持使用API level 16及以上的设备,不过这也不算什么很大的因素,因为现在大多数的App支持API level 19及以上。

优点:

提供简单易学的教程,库由谷歌社区支持和维护,第三方支付集成了基于云计算的测试管理。

缺点:

仅支持Android 4.1及以上,不支持脚本记录,支持的重点是Java。

个人不能获得当前活动或仪表化,目前不支持Web视图,因此是混合App;

库支持使用Java,因此如果有人想和使用Ruby的cucumber混合,会很困难。不过Java有它自己的BDD框架,虽然在实践中用到的也不多。

Robotium和Appium区别

Appium是基于UIAutomator框架实现的(iOS和安卓都适用);

Robotium是基于Instrumentation框架的(只适用于安卓);

Appium是模拟用户的场景触发相对应的事件,而Robotium是直接在内部修改相应数据,相对来说Robotium更底层。

就我们测试而言 是模拟用户的场景触发相应的事件。所以选择Appium。

最后感谢每一个认真阅读我文章的人,下面这个网盘链接也是我费了几天时间整理的非常全面的,希望也能帮助到有需要的你!

在这里插入图片描述

这些资料,对于想转行做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助……

如果你不想一个人野蛮生长,找不到系统的资料,问题得不到帮助,坚持几天便放弃的感受的话,可以点击下方小卡片加入我们群,大家可以一起讨论交流,里面会有各种软件测试资料和技术交流。

敲字不易,如果此文章对你有帮助的话,点个赞收个藏来个关注,给作者一个鼓励。也方便你下次能够快速查找。

自学推荐B站视频:

零基础转行软件测试:自学完软件测试,拿到了字节的测试岗offer,堪称B站最好的视频!

自动化测试进阶:已上岸华为,涨薪20K,2022最适合自学的python自动化测试教程,自己花16800买的,无偿分享

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码小怡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值