本文共 3346 字,大约阅读时间需要 11 分钟。
现今自动化测试在产品测试中占有很重要地位。实现测试的自动化有很多积极的意义,比如尽量缩短测试执行时间,关键发布阶段在更短时间保证更大的测试覆盖,产品开发阶段可靠和重复运行确保不引入回归问题;并且它也能最大可能地减少在重复性回归周期由于人的错误或疏忽带来的风险。
市场上有大量的工具可以用来做测试自动化,其中有开源的也有付费的。尽管使用付费的或者开源的工具各有优劣,后一类的工具还是在各自动化测试社区被广泛使用。根据你的项目需求选择恰当的自动化工具是非常棘手的。
下面是排名前 5 的开源 iOS 和 Andriod 自动化工具。
(图片翻译:Calabash 让你能够编写和执行手机应用的验收测试,它是跨平台的,支持安卓和 iOS 的原生程序,它是开源和免费,由 Xamarin 开发并维护。)
这是什么?-Calabash 是支持安卓和 iOS 开源的验收自动化测试框架。它为安卓和 iOS 的自动化提供了一个独立的库。它支持 cucumber ,从而可以让你采用 BDD (行为驱动开发)英语母语的方式表达你的应用。
Calabash 提供了一座桥让 cucumber 测试和验证能在安卓和 iOS 上执行。Cucumber 测试是编写为一组语句列表,语句有若干数目的测试场景组成。Cucumber 中的语句是用 Ruby 定义的。
在 Calabash 中,一条 cucumber 语句只能定义一次,但是可以在 cucumber 脚本的不同场景中运行多次。
实际的测试是用 Gherkin 编写,支持 Ruby 代码,并且运行在 cucumber 框架中。
这是什么 –Appium 是 Sauce实验室提供给原生,混合,和网页手机应用的开源自动化测试框架。Appium在框架中的库函数调用后台的Appium服务器从而操作连接的设备。它使用Selenium的 WebDriver来和iOS和安卓应用交互,它内部使用 JSONWireProtocol。
不像Calabash它不是仅仅支持用Ruby开发, 借助Selenium WebDriver的支持,Appium能够按你选择的语言来开发,从Java,Python到Ruby,只要该语言被Selenium WebDriver支持。
Appium 服务器是部署在Node服务器上的。 可以通过一组Node命令来启动一个Appium 服务器。如果使用Appium独立服务器作为你的应用服务器 (可以从Appium网站下载), 检查员工具提供了 定位/甄别/操作 你的应用中的所有定位器的能力。
Robotium 是什么 – Robotium 是一个开源的测试框架,它可以用于功能测试,系统测试,验收测试等场景。Robotium 和 Selenium 非常相似,不同的是它仅能用于 Android。它遵循 Apache License 2.0 开源协议。
由于它简单易用,并且能够创建出强大、健壮性良好的自动化测试场景,Robotium 正在受到越来越多的自动化测试社区用户的欢迎。
Robotium 使用运行时绑定 GUI 组建的方式。使用时将测试用例库,以一个应用程序的形式安装到 Android 的设备或者模拟器上,以此提供一个真实的环境用以执行测试。
Frank是什么 - Frank 是一个 iOS 应用程序的自动化测试框架,它提供了一种使用 Cucumber 自然语句书写测试用例的能力。
Frank 需要被编译进被测试的应用程序,这意味着你的源代码必须被修改。它是一个工具,使用的是Cucumber 和 JSON 的组合命令,并将这些命令发送到你本地应用程序中的一个服务器。然后,利用 UISpec 来执行这些命令。
UIAutomator 是什么 - UIAutomator 是来自 Google 的测试框架,提供 Android 原生 app 和游戏的高级 UI 测试。它是一个 java lib,既有创建功能的 UI 测试的 API,又有运行测试的执行引擎。 Android SDK 中就带有。有很多教程帮助新手入门。它的优势在于,在运行访问不同进程时,给 JUnit 测试用例特权。尽管对于原生 app 的自动测试,它是又好又简单,但是对于自动测试 web view 的支持则是那么的有限近乎不支持。它只支持 API level16 及以上的设备,但这并没有多大问题,毕竟现在大部分都已在 API level19 及以上了。
文章转载自 开源中国社区[https://www.oschina.net]