以下是一些常用的 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命令列表。这使脚本变得更加容易!
优点:
- 很容易安装和使用。
- 不需要编程经验。
- 具有内置的帮助功能,并显示所选或输入的命令的文档
- 通过显示信息和错误消息帮助调试。
- 它允许在必要时设置断点,插入命令和注释。
- 为扩展提供良好的支持,有助于导出可在Selenium RC和WebDriver中执行的测试。
缺点:
- 作为Firefox插件,它不支持Mozilla Firefox以外的任何浏览器。
- 它没有明确提供帮助来支持警报,弹出窗口和导航。
- 它不支持监听器。
- 不支持错误处理和数据库测试。
- 它不能用于测试iPhone和Android应用程序。
- 不支持从外部文件读取和上传文件。
- 不支持迭代和条件操作。
关键要点: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 集成可用作插件)
- 不完全成熟的技术