最棒的 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]

相关文章
|
4月前
|
开发框架 前端开发 Android开发
Flutter 与原生模块(Android 和 iOS)之间的通信机制,包括方法调用、事件传递等,分析了通信的必要性、主要方式、数据传递、性能优化及错误处理,并通过实际案例展示了其应用效果,展望了未来的发展趋势
本文深入探讨了 Flutter 与原生模块(Android 和 iOS)之间的通信机制,包括方法调用、事件传递等,分析了通信的必要性、主要方式、数据传递、性能优化及错误处理,并通过实际案例展示了其应用效果,展望了未来的发展趋势。这对于实现高效的跨平台移动应用开发具有重要指导意义。
505 4
|
1月前
|
JavaScript 前端开发 Android开发
【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
81 13
【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
|
4月前
|
Android开发 Swift iOS开发
深入探索iOS与Android操作系统的架构差异及其对应用开发的影响
在当今数字化时代,移动设备已经成为我们日常生活和工作不可或缺的一部分。其中,iOS和Android作为全球最流行的两大移动操作系统,各自拥有独特的系统架构和设计理念。本文将深入探讨iOS与Android的系统架构差异,并分析这些差异如何影响应用开发者的开发策略和用户体验设计。通过对两者的比较,我们可以更好地理解它们各自的优势和局限性,从而为开发者提供有价值的见解,帮助他们在这两个平台上开发出更高效、更符合用户需求的应用。
|
4月前
|
安全 Android开发 数据安全/隐私保护
深入探讨iOS与Android系统安全性对比分析
在移动操作系统领域,iOS和Android无疑是两大巨头。本文从技术角度出发,对这两个系统的架构、安全机制以及用户隐私保护等方面进行了详细的比较分析。通过深入探讨,我们旨在揭示两个系统在安全性方面的差异,并为用户提供一些实用的安全建议。
|
1月前
|
JavaScript 搜索推荐 Android开发
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
70 8
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
|
1月前
|
数据采集 JavaScript Android开发
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
64 7
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
|
1月前
|
缓存 Java 测试技术
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
203 3
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
|
3月前
|
安全 生物认证 Android开发
深入探索iOS与Android操作系统的安全性差异
本文旨在通过对比分析iOS和Android两大主流移动操作系统在安全性方面的差异,揭示它们各自的安全机制、面临的挑战以及用户如何提升自身设备的安全保护。通过对系统架构、应用审核机制、数据加密方式及隐私政策的深入探讨,本文为读者提供了一个全面了解两大平台安全性的视角,并提出了实用的安全建议。
|
3月前
|
安全 Android开发 iOS开发
深入探索iOS与Android系统架构差异及其对开发者的影响
本文旨在通过对比分析iOS和Android两大移动操作系统的系统架构,探讨它们在设计理念、技术实现及开发者生态方面的差异。不同于常规摘要仅概述内容要点,本摘要将简要触及核心议题,为读者提供对两大平台架构特点的宏观理解,铺垫
|
4月前
|
前端开发 数据处理 Android开发
Flutter前端开发中的调试技巧与工具使用方法,涵盖调试的重要性、基本技巧如打印日志与断点调试、常用调试工具如Android Studio/VS Code调试器和Flutter Inspector的介绍
本文深入探讨了Flutter前端开发中的调试技巧与工具使用方法,涵盖调试的重要性、基本技巧如打印日志与断点调试、常用调试工具如Android Studio/VS Code调试器和Flutter Inspector的介绍,以及具体操作步骤、常见问题解决、高级调试技巧、团队协作中的调试应用和未来发展趋势,旨在帮助开发者提高调试效率,提升应用质量。
111 8

热门文章

最新文章