最棒的 5 款开源 Android/iOS 自动化工具

简介:

现今自动化测试在产品测试中占有很重要地位。实现测试的自动化有很多积极的意义,比如尽量缩短测试执行时间,关键发布阶段在更短时间保证更大的测试覆盖,产品开发阶段可靠和重复运行确保不引入回归问题;并且它也能最大可能地减少在重复性回归周期由于人的错误或疏忽带来的风险。

市场上有大量的工具可以用来做测试自动化,其中有开源的也有付费的。尽管使用付费的或者开源的工具各有优劣,后一类的工具还是在各自动化测试社区被广泛使用。根据你的项目需求选择恰当的自动化工具是非常棘手的。

下面是排名前 5 的开源 iOS 和 Andriod 自动化工具。

1) Calabash (适用于安卓和 iOS)

image

(图片翻译:Calabash 让你能够编写和执行手机应用的验收测试,它是跨平台的,支持安卓和 iOS 的原生程序,它是开源和免费,由 Xamarin 开发并维护。)

这是什么?-Calabash 是支持安卓和 iOS 开源的验收自动化测试框架。它为安卓和 iOS 的自动化提供了一个独立的库。它支持 cucumber ,从而可以让你采用 BDD (行为驱动开发)英语母语的方式表达你的应用。

Calabash 提供了一座桥让 cucumber 测试和验证能在安卓和 iOS 上执行。Cucumber 测试是编写为一组语句列表,语句有若干数目的测试场景组成。Cucumber 中的语句是用 Ruby 定义的。

在 Calabash 中,一条 cucumber 语句只能定义一次,但是可以在 cucumber 脚本的不同场景中运行多次。

实际的测试是用 Gherkin 编写,支持 Ruby 代码,并且运行在 cucumber 框架中。

优点

  1. 大型的社区支持。
  2. 简单的,富有感染力的类似于英语的测试语句。
  3. 支持屏幕所有的动作,比如滑动,缩放,旋转和敲击。
  4. 大型而热情的社区。
  5. 跨平台开发的支持(相同的代码在安卓和 iOS 都适用)

缺点

  1. 当测试步骤失败的时候,后续步骤会被忽略。这个会导致漏掉更严重的产品问题。
  2. 跑测试需要花费时间应为默认是总是在最开始安装应用,但是这个设定可以在代码添加钩子给覆盖掉。
  3. 需要 Calabash 框架在安装在 iOS 的 ipa 文件中。
  4. 在 iOS 上我们必须要应用的代码。
  5. 对 Ruby 之外的语言不友好。

2) Appium (支持安卓和 iOS)

image

这是什么 –Appium 是 Sauce实验室提供给原生,混合,和网页手机应用的开源自动化测试框架。Appium在框架中的库函数调用后台的Appium服务器从而操作连接的设备。它使用Selenium的 WebDriver来和iOS和安卓应用交互,它内部使用 JSONWireProtocol。

不像Calabash它不是仅仅支持用Ruby开发, 借助Selenium WebDriver的支持,Appium能够按你选择的语言来开发,从Java,Python到Ruby,只要该语言被Selenium WebDriver支持。

Appium 服务器是部署在Node服务器上的。 可以通过一组Node命令来启动一个Appium 服务器。如果使用Appium独立服务器作为你的应用服务器 (可以从Appium网站下载), 检查员工具提供了 定位/甄别/操作 你的应用中的所有定位器的能力。

优点

  1. 支持多语言。
  2. 无需访问源码。
  3. 跨平台脚本编程能力。
  4. 大社区的支持。
  5. 支持在Mac平台录制。
  6. 能够使用Appium服务器程序的‘定位’工具提取标识符。
  7. 由Appium服务器桌面程序内建支持‘Selendroid’。
  8. 还能使用供应商的框架: UIAutomation用于iOS, UIAutomator和Selendroid分别支持android 4.2+ 和 2.3+。
  9. 支持物理设备和模拟器。
  10. 支持原生,混合和手机网络程序的自动化。

缺点

  1. Appium服务器桌面程序常常有不稳定版本。
  2. Window操作系统上对服务器桌面应用不支持脚本录制。

3) Robotium (Android)

image

Robotium 是什么 – Robotium 是一个开源的测试框架,它可以用于功能测试,系统测试,验收测试等场景。Robotium 和 Selenium 非常相似,不同的是它仅能用于 Android。它遵循 Apache License 2.0 开源协议。

由于它简单易用,并且能够创建出强大、健壮性良好的自动化测试场景,Robotium 正在受到越来越多的自动化测试社区用户的欢迎。

Robotium 使用运行时绑定 GUI 组建的方式。使用时将测试用例库,以一个应用程序的形式安装到 Android 的设备或者模拟器上,以此提供一个真实的环境用以执行测试。

亮点

  1. 让编写测试脚本工作变得轻而易举.
  2. 能够对预装应用进行自动化测试.
  3. 自动追踪当前的 activity.
  4. 由于采用了运行时绑定 GUI 组件的方式,与 Appium 相比,它能够更加快速稳定的执行测试.
  5. 可以在没有源代码,也不知道应用具体实现的条件下进行测试.
  6. 支持 Activities, Dialogs(对话框) ,Toasts, Menus(菜单), Context Menus(上下文菜单)和其他 Android SDK 的控件.

不足

  1. 无法处理 flash 和 web 组件.
  2. 仅能够支持 Java 开发环境.
  3. 在较早期的设备上运行不够流畅.
  4. 由于不支持 iOS 设备,当自动化测试同时覆盖 android 与 iOS 的情况时,测试会被中断.
  5. 没有内置的记录和回放功能. 使用记录功能需要 TestDroid 和 Robotium Recorder 这样收费工具。

image

Frank是什么 - Frank 是一个 iOS 应用程序的自动化测试框架,它提供了一种使用 Cucumber 自然语句书写测试用例的能力。

Frank 需要被编译进被测试的应用程序,这意味着你的源代码必须被修改。它是一个工具,使用的是Cucumber 和 JSON 的组合命令,并将这些命令发送到你本地应用程序中的一个服务器。然后,利用 UISpec 来执行这些命令。

优点

  1. 借助于 Cucumber 框架,可以使用容易理解的自然语句书写测试用例。
  2. 自带审查工具。
  3. 显示出了高效性,对于拥有 Selenium 和 Cucumber 自动化测试框架使用经验的团队。
  4. 活跃的社区支持。
  5. 持续扩展的功能库。

不足

  1. 有限的手势支持功能。
  2. 设备上跑测试有点困难。
  3. 需要修改配置文件才能在真实设备上运行。
  4. 缺少记录功能。

5)UIAutomator (Android)

image

UIAutomator 是什么 - UIAutomator 是来自 Google 的测试框架,提供 Android 原生 app 和游戏的高级 UI 测试。它是一个 java lib,既有创建功能的 UI 测试的 API,又有运行测试的执行引擎。 Android SDK 中就带有。有很多教程帮助新手入门。它的优势在于,在运行访问不同进程时,给 JUnit 测试用例特权。尽管对于原生 app 的自动测试,它是又好又简单,但是对于自动测试 web view 的支持则是那么的有限近乎不支持。它只支持 API level16 及以上的设备,但这并没有多大问题,毕竟现在大部分都已在 API level19 及以上了。

优点

  1. 简单易用,教程丰富;
  2. Library 支持且由 Google 社区维护;
  3. 第三方付费集成云端的测试管理。

缺点

  1. 只支持 Android4.1 和更高;
  2. 不支持脚本录制;
  3. 支持只专注于 Java;
  4. 无法获得当前的 Activity 或 Instrumentation;
  5. 当前不支持 WebView 或混合 app;
  6. Library 只支持 Java,因此想集成到 ruby 的 cucumber(译注:Cucumber 是 BDD(行为驱动开发)中成熟的一个框架,官方网址: http://cukes.info/)框架中则比较困难,尽管 Java 已有 BDD框架可用,可实际上却用的很少。

文章转载自 开源中国社区[https://www.oschina.net]

相关文章
|
9月前
|
运维 Prometheus 监控
3 年部署经验总结:用自动化工具轻松管理 300+ 服务器开源软件
三年前接手公司IT部门时,我满怀信心,却发现部署效率低下。尽管使用了GitLab、Jenkins、Zabbix等100+开源工具,部署仍耗时费力。文档厚重如百科,却难解实际困境。一次凌晨三点的加班让我下定决心改变现状。偶然看到一篇国外博客,介绍了自动化部署的高效方式,我深受启发。
351 0
|
8月前
|
机器学习/深度学习 人工智能 测试技术
EdgeMark:嵌入式人工智能工具的自动化与基准测试系统——论文阅读
EdgeMark是一个面向嵌入式AI的自动化部署与基准测试系统,支持TensorFlow Lite Micro、Edge Impulse等主流工具,通过模块化架构实现模型生成、优化、转换与部署全流程自动化,并提供跨平台性能对比,助力开发者在资源受限设备上高效选择与部署AI模型。
679 9
EdgeMark:嵌入式人工智能工具的自动化与基准测试系统——论文阅读
|
7月前
|
人工智能 搜索推荐 UED
一个牛逼的国产AI自动化工具,开源了 !
AiPy是国产开源AI工具,结合大语言模型与Python,支持本地部署。用户只需用自然语言描述需求,即可自动生成并执行代码,轻松实现数据分析、清洗、可视化等任务,零基础也能玩转编程,被誉为程序员的智能助手。
|
9月前
|
人工智能 数据可视化 数据挖掘
团队日报不用愁!自动化生成工具亲测:任务进度实时同步
本文深入分析了传统手动日报在数据孤岛、格式混乱和时效性差三大痛点,并探讨了自动化日报带来的效率提升、决策优化等四大核心价值。通过对板栗看板、SmartBrief、n8n 等六款主流工具的功能、适用场景及实战效果进行测评,为企业提供科学的选型建议与实施路径。
团队日报不用愁!自动化生成工具亲测:任务进度实时同步
|
8月前
|
Java 测试技术 API
自动化测试工具集成及实践
自动化测试用例的覆盖度及关键点最佳实践、自动化测试工具、集成方法、自动化脚本编写等(兼容多语言(Java、Python、Go、C++、C#等)、多框架(Spring、React、Vue等))
661 6
|
7月前
|
人工智能 缓存 自然语言处理
86_自动化提示:AutoPrompt工具
在当今人工智能领域,提示工程(Prompt Engineering)已成为释放大语言模型(LLM)潜能的关键技术。随着LLM规模和能力的不断增长,如何设计高效、精确的提示词成为研究和应用的焦点。然而,传统的手工提示工程面临着巨大挑战
528 0
|
9月前
|
人工智能 供应链 数据可视化
工作流梳理工具实战教程:手把手教你绘制第一张自动化流程图
本文剖析了团队因流程混乱导致重复劳动和效率低下的问题,提出通过工作流梳理提升协作效率的解决方案。总结了流程梳理的六大核心需求,并深度测评了6款主流工具,国内有板栗看板那,国外有kiss flow结合团队规模与需求提供选型建议,助力企业高效落地流程优化。
|
8月前
|
安全 搜索推荐 机器人
风险规则引擎-RPA 作为自动化依赖业务决策流程的强大工具
机器人流程自动化(RPA)是一种通过软件“机器人”自动执行重复性任务的技术,能大幅提升工作效率。它适用于财务、电商等领域的标准化流程,如账单处理和退货管理。然而,RPA在复杂决策场景中存在局限,需结合决策模型(DMN)和业务规则管理系统(BRMS)实现流程与决策的协同自动化,从而增强灵活性与业务价值。
|
9月前
|
数据采集 运维 监控
|
数据采集 人工智能 机器人
RPA与爬虫:自动化工具的本质差异与选择指南
本文深入解析RPA与爬虫的本质差异,帮助企业根据业务需求明智选型。RPA侧重内部流程自动化,爬虫专注外部数据采集。内容涵盖技术原理、应用场景、优劣势对比及主流RPA工具介绍,助力把握自动化趋势,提升效率。
2118 0

热门文章

最新文章