前言本文主要介绍了Android和iOS最好的五款开源自动化工具,并在此整理了相关资料,希望对测试软件的朋友有所帮助,有需要可以看看。
自动化测试在产品测试中起着非常重要的作用。实现测试自动化有许多积极的方法,包括最小化测试执行时间;在关键发布阶段,用更少的时间保证更大的覆盖率;在产品开发阶段,可靠地重复运行,以确保不会引入回归问题。最小化重复回归测试周期中人为错误和疏忽的风险。
市场上有很多可用的工具,开源的或者付费的。尽管付费工具和开源工具各有优缺点,但后者已经在自动化测试社区得到了广泛的应用。根据项目需求选择合适的自动化工具是非常困难的。
以下是iOS和Android的五个最好的开源自动化工具。
1.葫芦(适用于Android和iOS)
Calabash是一个开源的验收测试框架,支持Android和iOS自动化。Calabash为Android和iOS自动化测试提供了单独的库。这是一个支持Cucumber的跨平台框架,可以让你用自然的英文语言表达app的行为,实现BDD(行为驱动开发)。
Calabash提供了一个桥梁,允许黄瓜测试在iOS和Android上运行和验证。黄瓜测试是用语句列表写的,会形成很多测试场景。Cucumber中的所有语句都是用Ruby定义的。
在Calabash中,Cucumber语句只能定义一次,但是可以在Cucumber脚本的不同场景中重用。
实际的测试是用Gherkin编写的,由Ruby代码支持,在Cucumber框架的上下文中运行。
优势:
大型社区支持。
简单的,类似英语的测试句子。
支持屏幕上的所有动作,如滑动、缩放、旋转、点击等。
庞大而热情的社区。
跨平台开发支持(同一代码适用于Android和iOS设备)。
缺点:
测试步骤失败后,将跳过所有后续步骤。这可能会导致遗漏更严重的产品问题。
测试需要时间,因为它总是默认先安装app。但是,可以通过在代码中配置一个挂钩来覆盖此设置。
葫芦框架需要安装在ios的ipa文件中。
我们必须要有iOS的app代码。
对除Ruby以外的其他语言不友好。
2.Appium(Android和iOS)
Appium是酱实验室出品的开源自动化测试框架,用于原生、混合和移动web app。框架中的Appium库函数调用Appium服务器在后台运行操作连接的设备。它在内部使用JSONWireProtocol与使用Selenium的WebDriver的iOS和Android应用程序进行交互。
与Calabash只支持Ruby开发不同,在框架中使用Appium时,可以选择Java、Python、Ruby以及Selenium WebDriver支持的所有其他语言。
Appium服务器托管在节点服务器上。您可以通过触发一组节点命令来启动Appium服务器。使用Appium独立应用程序作为服务器(从Appium网站下载),检查器工具可以提供查找/识别/操作应用程序的所有定位器的能力。
优势:
支持多种语言。
不需要访问源代码。
跨平台脚本开发。
大型社区支持。
支持Mac上的脚本录制。
使用Appium Server应用程序的Inspector工具提取标识符。
通过Appium Server的桌面应用程序内置对Selendroid的支持。
还使用了供应商提供的框架:iOS版的UIAutomation,Android 4.2和2.3版的UIAutomator和Selendroid。
支持物理设备和模拟器。
支持原生、混合和移动web自动化应用。
缺点:
Appium Server桌面应用的发布往往不稳定。
脚本录制不适用于应用服务器对Windows OS的桌面应用。
3.机器人(安卓)
Robotium是一个开源测试框架,用于开发功能、系统和验收测试场景。它与Selenium非常相似,只是Robotium仅适用于Android。它是在Apache许可证2.0下注册的。
因为它不仅简单,而且能够创建强大而可靠的自动化场景,所以在自动化测试社区中广受欢迎。
它使用运行时绑定到GUI组件。它在Android设备或仿真器上安装一个测试用例套件作为应用程序,并提供一个真实的测试环境。
优势:
很容易在最短的时间内写出测试脚本。
可以预装自动化app。
自动关注当前活动。
因为运行时绑定了GUI组件,所以它的测试执行比Appium更快更强大。
你可以在不访问代码或不知道应用程序实现的情况下工作。
支持活动、对话框、祝酒词、菜单、上下文菜单等Android SDK控件。
缺点:
无法处理flash和web组件。
支持Java开发。
在老设备上会变得很慢。
由于不支持iOS设备,当自动化测试同时覆盖android和iOS时,测试会被中断。
没有内置录音回放功能。使用录音功能需要充电工具,如TestDroid和Robotium Recorder。
4.弗兰克(iOS)
Frank是一个iOS应用的自动化框架,它允许你使用Cucumber编写结构化英语句子的测试场景。
Frank要求在应用程序内部编译测试,这意味着对源代码的修改是强制性的。这是一个使用Cucumber和JSON组合命令的工具。这些命令被发送到在本地应用程序中运行的服务器,这些命令是通过使用UISpec运行的。
优势:
在黄瓜的帮助下,用可理解的英语句子编写测试场景。
Symbiote——包含实时检测工具。
如果团队有web selenium和cucumber自动化框架的经验也是有效的。
积极的社区支持。
不断扩大的图书馆。
缺点:
对手势的支持有限。
在设备上运行测试有点困难。
修改配置文件需要在实际设备上运行。
录音功能不可用。
5.UIAutomator(Android)
UIAutomator是Google提供的测试框架,为原生Android应用和游戏提供高级UI测试。这是一个包含API的Java库,用于创建功能UI测试和运行测试的执行引擎。该库附带Android SDK。有很多针对初学者的教程。优点是,当它运行和访问不同的进程时,它将给予JUnit测试用例特权。虽然这对于本地自动化应用程序来说很好也很简单,但它对web自动化视图的支持非常有限或几乎没有。它只支持使用API 16级及以上的设备,但这并不是一个很大的因素,因为现在大多数app都支持API 19级及以上。
优势:
简单易学的教程。
该库由Google社区支持和维护。
第三方支付基于云计算整合测试管理。
缺点:
仅支持android 4.1及以上版本。
不支持脚本录制。
支持的重点是Java。
您无法获取当前活动或仪器。
目前不支持web view,所以是混合app。
库支持Java,如果有人想用Ruby混搭黄瓜会很困难。不过Java有自己的BDD框架,虽然在实践中用的不多。
以上是Android和IOS自动化测试的数据整理,以后继续补充相关资料。感谢您对本站的支持!