漫谈前端自动化测试演进之路及测试工具分析

时间:2023-4-19    作者:悬浮的青春    分类:


以下是一些常用的 Web 前端 UI 自动化测试工具:

1. Parasoft Selenic

2. Katalon

3. Selenium IDE

4. mabl

5. TestIM

6. Functionize

7. Perfecto

8. TestCraft

9. Squish

10. AutonomIQ

1. Parasoft Selenic

Parasoft Selenic最亮的功能莫过于自我修复和AI驱动建议,可帮助团队有效维护其现有的Selenium脚本,无需退出Selenium即可从高级UI测试稳定性中受益,通过将简单的单行代码更改为命令行执行,即可激活适合现有CI / CD管道的功能; 一个智能的测试创建工作流程,使测试人员可以使用页面对象模型快速创建可维护的Selenium测试。

优点:

  • 智能记录器可以轻松创建使用页面对象模型的 Selenium 测试
  • 可以对现有的 Selenium 测试执行故障恢复,并在现有的 Selenium 测试中推荐智能定位器
  • 通过利用您现有的 Selenium 脚本或创建新的 Selenium 脚本,直接集成到您的 CI/CD 管道中
  • 提供测试影响分析技术,自动识别需要在 CI/CD 管道中执行哪些 Selenium 测试以验证新的代码更改
  • 提供各个级别的客户支持(不仅仅是企业)
  • 支持 BDD。专注于底层Java(JUnit和TestNG)Selenium测试代码的维护

缺点:

  • 此商业产品没有免费许可证,但可以免费试用。
  • 这个产品还是比较新的。当前版本支持 Java、JUnit 4 & 5、TestNG、Cucumber、Eclipse 和 IntelliJ。未来版本将考虑其他支持。

2. Katalon

katalon是近几年来比较流行的自动化测试工具,在自动化测试工具年度评选中仅次于selenium位居第二,他与selenium有着很多相似的地方又有很多不同,比如说他们有如下相同点:

他们都可以进行网页自动化测试。katalon的recorder 对标于selenium IDE,都可以进行网页的自动化脚本录制

他们都可以导出代码,其中katalon的recorder 也可以导出selenium的代码

katalon 的recorder 与seleniumIDE的功能有很多相同。

Katalon的优点:

  • 推荐智能定位器
  • 使用页面对象模型(但仅用于在 IDE 中生成和管理的测试)
  • 具有故障恢复功能(通过付费插件)
  • 能够导出到多种不同类型的测试脚本
  • 支持 BDD。功能文件执行 Katalon 测试代码

缺点:

  • 虽然您可以将测试导出为 Selenium 和其他测试脚本,但是一旦导出,将失去 Katalon 的所有可用性,并且导出不包括页面对象模型,这意味着测试变得难以重用和维护
  • 他们的客户支持仅在企业级别可用,而且非常昂贵
  • 不直接集成到您现有的执行框架中(使用专有框架,CI 集成可用作插件)

3. Selenium IDE

Selenium IDE应该说是我们用的最多的web自动化测试工具了,Selenium IDE(集成开发环境)是套件中可用的最简单的框架。 它用作为Firefox插件,因此安装和使用非常简单。 通过极少的编程知识和接近零的培训,就可以开始使用Selenium IDE。 对于初学者,要了解Selenese命令,还要了解脚本语法,这是一个很好的工具。

它提供了一个GUI(图形用户界面),用于在Firefox浏览器中记录必要的操作。选择在Firefox浏览器当前显示的页面上显示的UI元素时,Selenium IDE运行时的右键单击将根据所选UI元素的上下文显示具有预定义参数的Selenium命令列表。这使脚本变得更加容易!

更多请阅读:www.yiibai.com/hotnews/tem…

优点:

  • 很容易安装和使用。
  • 不需要编程经验。
  • 具有内置的帮助功能,并显示所选或输入的命令的文档
  • 通过显示信息和错误消息帮助调试。
  • 它允许在必要时设置断点,插入命令和注释。
  • 为扩展提供良好的支持,有助于导出可在Selenium RC和WebDriver中执行的测试。

缺点:

  • 作为Firefox插件,它不支持Mozilla Firefox以外的任何浏览器。
  • 它没有明确提供帮助来支持警报,弹出窗口和导航。
  • 它不支持监听器。
  • 不支持错误处理和数据库测试。
  • 它不能用于测试iPhone和Android应用程序。
  • 不支持从外部文件读取和上传文件。
  • 不支持迭代和条件操作。

//更多请阅读:www.yiibai.com/hotnews/tem…

关键要点:Selenium IDE 使用简单,让用户能够快速创建针对其 Web UI 的测试。它对 Selenium 非常友好,对于习惯了该框架的人来说会感觉很便利。

4. mabl

优点:

  • 推荐智能定位器(但对用户来说有点模糊)
  • 故障恢复功能运作良好
  • SaaS解决方案;易于访问和入门
  • 可扩展的定价模型

缺点:

  • 记录流程时不使用页面对象模型
  • 使用自己的框架,没有测试脚本的导入导出
  • 虽然存在 CI 集成,但您无法将解决方案直接集成到现有框架中
  • 如果某些事情没有按您预期的方式工作,则很难访问“代码”以进行配置或操作
  • 对“流程”的关注使得创建“功能验证”(即带有断言的测试)感到尴尬
  • 仅 SaaS 解决方案;没有内部部署,也无法访问公共互联网中不可用的应用程序
  • 没有对 BDD 的内置支持

5.TestIM

优点:

  • 测试非常容易创建,具有直观的用户界面
  • 推荐智能定位器,以及维护它们的绝佳策略
  • 多种测试模式:TestIM 提供了多种测试模式,包括单元测试、集成测试、端到端测试等,可以满足不同场景和需求的测试需求。
  • 自动化测试:TestIM 支持自动化测试,可以使用 Python、Java 等编程语言编写测试脚本,提高测试效率和准确性。
  • 测试报告:TestIM 提供了可视化的测试报告,可以实时展示测试结果和缺陷数量,帮助开发人员快速了解测试进展情况。
  • 团队协作:TestIM 支持团队协作和任务分配,可以方便地管理和协调测试任务,提高测试效率和质量。
  • 云环境支持:TestIM 支持云环境部署和运行,可以方便地在不同设备和环境中进行测试和部署。

缺点:

  • 在他们的测试中不使用页面对象模型
  • 缺乏导入和导出测试脚本的能力
  • 用户无法访问代码或从 TestIM 中进行测试
  • 供应商锁定框架——脚本在 TestIM 框架中
  • 对 BDD 的支持不明确

6. Functionize

优点:

  • 出色的测试流程可视化显示
  • 为元素推荐多个定位器
  • 简单易用:Functionize 的文档和 API 非常清晰易懂,使得初学者可以快速上手。
  • 功能强大:Functionize 支持多种 Web 应用程序自动化功能,如请求拦截器、响应拦截器、请求工厂、数据可视化等。
  • 可扩展性:Functionize 支持自定义插件和扩展,使得开发人员可以轻松地添加和自定义功能。
  • 跨平台支持:Functionize 可以在 Windows、macOS 和 Linux 等多个操作系统上运行,使得开发人员可以在不同的环境下进行开发。

缺点:

  • 不能使用页面对象模型
  • 供应商锁定框架
  • 没有导入和导出测试脚本
  • 学习曲线较陡峭:Functionize 的文档和 API 较为复杂,需要开发人员有一定的 Python 编程基础才能理解和运用。
  • 需要大量的配置:Functionize 的功能非常丰富,但这也需要大量的配置和设置,可能会让开发人员感到繁琐。

7. Perfecto

优点:

  • 使用页面对象模型(但仅在其生成的测试中)
  • 为记录的 Web 元素提供多个定位器
  • 最近引入了故障恢复(虽然有点不清楚它的作用或性能如何)

缺点:

  • 测试脚本采用基于 TCL 的专有语言
  • 不能导入自己的 Selenium 脚本
  • 虽然它们提供 CI 集成,但它并未直接集成到您现有的框架中
  • BDD 通过第三方实施支持,Project Quantum

8. TestCraft

优点:

  • 使用页面对象模型(但仅在其生成的测试中)
  • 推荐智能定位器,称为“智能绑定”
  • 功能强大:TestCraft 提供了许多功能,能够满足不同类型的测试需求。
  • 易于使用:TestCraft 的安装和使用方法比较简单,可以快速上手。
  • 跨平台支持:TestCraft 可以在不同的操作系统上运行,包括 Windows、macOS 和 Linux 等。
  • 支持多种测试语言:TestCraft 可以与多种测试语言集成,包括 Python、Java、c 等。
  • 可以集成到其他工具中:TestCraft 可以与许多其他工具集成,例如 Git、Jenkins 等。

缺点:

  • 使用专有框架
  • 您不能导入/导出测试脚本
  • 不直接集成到您现有的框架中(CI 集成可用作插件)
  • 学习曲线较陡峭:TestCraft 的功能很多,因此需要一定的学习曲线,需要花费一定的时间来了解它的使用方法。
  • 复杂度比较高:TestCraft 的使用需要一定的技术能力,如果不熟悉测试理论、方法和工具,可能会感到复杂和困难。
  • 费用较高:TestCraft 是一种商业测试框架,需要支付一定的费用。

9. Squish

优点:

  • 广泛的跨平台测试支持
  • 强大的光学字符识别 (OCR) 功能
  • 独立于屏幕布局的可靠对象识别和验证
  • 对脚本语言的良好支持

缺点:

  • 可能需要改进最终用户培训和技术支持,尽管大多数反馈是有利的
  • 向对象映射添加新对象时报告的一些问题

10. AutonomIQ

优点:

  • 强大的 NLP、AI 和 ML
  • 使用页面对象模型(但仅在其生成的测试中)
  • 通过 Chrome 插件推荐智能定位器
  • 在执行过程中故障恢复
  • 传统 BDD 的替代方法(使用专有 NLP)。如果您想做传统的 BDD(即 Cucumber),可能是个缺点

缺点:

  • 使用专有框架
  • 您无法导入测试脚本
  • 不直接集成到您现有的框架中(CI 集成可用作插件)
  • 不完全成熟的技术

WRITTEN BY

avatar