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

2023-06-01 0 296

原副标题:随笔后端智能化试验重构成功之路及试验工具预测

译者:天猫零售业 杜秀峰

随著后端控制技术的急速产业发展和插件的日渐繁杂,后端智能化试验也在急速重构。

Web 后端 UI 智能化试验产业文化史能回溯到 2000 年,当时最先的 Web 插件愈来愈繁杂,开发者已经开始采用智能化试验工具来保证插件的精确性和安全性。

在晚期,智能化试验是通过采用JAVA或JAVA来演示采用者的操作方式来完成的。那些试验工具通常如前所述 JavaScript 撰写,并且须要对 Web 插件的X310e展开深入细致了解。

随著 Web 插件显得愈来愈繁杂,智能化试验的需求也愈来愈高。2005 年,Selenium 已经开始盛行,它是一类如前所述 Java 的智能化试验架构,能用于演示采用者操作方式并展开 Web 插件的智能化试验。

Selenium 和其他智能化试验工具的再次出现使得 Web 后端 UI 智能化试验显得更加容易和高效率。随著 Web 应用程序的急速演进,智能化试验工具也在急速更新和产业发展。如今,智能化试验已经成为 Web 插件开发操作方式过程中必不可少的一部分,它们能协助开发者更慢地辨认出和复原严重错误,提升插件的操控性和安全性。

上面是后端自动化试验经历的阶段:

全自动试验:晚期的后端开发操作方式过程中,开发者须要全自动试验标识符的精确性,这须要大量的时间和心力。

2.模块试验:随著后端控制技术的急速产业发展,模块试验已经开始再次出现。模块试验是一类智能化试验方式,它测试标识符中的最轻可试验模块,例如表达式或组件。模块试验能协助开发者更慢地辨认出和复原标识符中的严重错误。

软件系统试验:软件系统试验是模块试验的进一步产业发展,它将模块试验软件系统到整座插件的试验中。此种方式能更慢速地发现整座插件中的严重错误。 起新端试验:起新端试验是一类智能化试验方式,它试验从输入到输入整座起新端插件的操作方式过程。此种方式能协助开发者更慢地辨认出和复原插件中的整座起新端严重错误。 稳步软件系统和稳步交货:稳步软件系统和稳步交货是一类智能化试验方式,它将试验软件系统到整座开发阶段中,包括标识符递交、构筑、试验、布署等各个环节。此种方式能协助开发者更慢地交货高产品质量的插件。 智能化试验架构和库:随著后端智能化试验的急速产业发展,再次出现了许多智能化试验架构和库。那些架构和库能协助开发者更慢速地撰写和运行试验用例,提升试验工作效率和产品质量。 人工智慧和机器学习:前段时间那些年来,人工智慧技术和机器学习方式逐渐应用于后端智能化试验中。那些方式能协助开发者更慢速地辨识和复原严重错误,提升试验工作效率和产品质量。

总而言之,后端智能化试验是一个急速产业发展的领域,随著后端控制技术的急速产业发展和插件的日渐繁杂,测试人员须要急速地学习新控制技术和方式来跟上变化。

同时呢,我们在做后端智能化的时候又会伴随著一些挑战

撰写 UI 试验JAVA可能会很耗时,因为这部分工作须要试验循环之前就要做好。但这份辛苦是值得的;只不过,UI JAVA本质上是脆弱的。大多数试验是通过 Selenium 试验JAVA完成的,那些JAVA能用多种语言撰写,例如 Java、Python 和 C++。

上面列举一些挑战事项:

重知识。撰写JAVA的人必须具有该方面的控制技术知识和经验。 耗时。由于流程的原因,一项试验可能须要 5 – 10 多分钟才能运行。加载浏览器 > 执行任务 > 设置和解析试验 > 数据加载等等。 维护。现代插件具有动态前端 UI。当同一页面重新加载时,其中的元素定位器和链接可能会在后台更改它们的定义方式。等待条件可能会破坏试验。如果页面加载时间更长,则会返回一个损坏的试验。 处理多个严重错误。繁杂的场景意味着巨大的数据量。筛选这个可能很麻烦。 故障排除。根据问题的频率和复原它所花费的时间,找出是什么破坏了试验可能很困难。 动态应用。由于敏捷开发,Web 插件以及插件本身一直在发生变化。试验必须从维护角度和结果角度来考虑。

后端智能化试验最佳实践又是什么呢,上面列举一些:

由于采用者界面是采用者触摸和看到的,因此实现智能化试验以缩短发布周期至关重要。与开发一样,所有团队都能遵循一些类似的最佳实践,以保证从他们的智能化投资中获得丰厚的投资回报。

1. 遵循一致的命名约定。

2. 查看哪些试验用例应该智能化。

3. 创建产品质量试验数据。

4. 保持试验独立。

5. 不要只依赖一类类型的试验。

6. 当您实际上应该暂停 UI 试验时,请避免系统休眠。

7. 并非所有试验都必须在所有目标浏览器中采用。

8. 研究无头浏览器试验。

9. 考虑采用BDD 架构。

10. 采用数据驱动与重复试验。

11. 简单化试验。

12. 截取屏幕截图以改进故障调查。

13. 采用正确的智能化试验工具。

在过去的几年里,至少再次出现了十几种全新的 UI 试验智能化工具。由于每个工具都有自己的重点和策略,因此很难从中选择。不过您能参考10 个必不可少的 Web UI 试验工具,只须要辨别哪一个有您的团队所须要的功能。

正如任何一个UI试验人员可能会争论的那样,UI 试验相对简单,只要您的 GUI 中没有任何变化,但问题是……界面一直在变化。根据您为 UI 试验选择的解决方案,急速变化的条件可能是具有自我复原和 AI 定位器的革命性体验,也可能是繁杂的全自动工作流程的严重失败。

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

以下是一些常用的 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驱动建议,可协助团队有效维护其现有的SeleniumJAVA,无需退出Selenium即可从高级UI试验稳定性中受益,通过将简单的单行标识符更改为命令行执行,即可激活适合现有CI / CD管道的功能; 一个智能的试验创建工作流程,使试验人员能采用页面对象模型加速创建可维护的Selenium试验。

优点:

智能记录器能轻松创建采用页面对象模型的 Selenium 试验 能对现有的 Selenium 试验执行故障恢复,并在现有的 Selenium 试验中推荐智能定位器 通过利用您现有的 Selenium JAVA或创建新的 Selenium JAVA,直接软件系统到您的 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,都能展开网页的智能化JAVA录制

他们都能导出标识符,其中katalon的recorder 也能导出selenium的标识符

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

Katalon的优点:

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

缺点:

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

3. Selenium IDE

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

Selenium IDE应该说是我们用的最多的web智能化试验工具了,Selenium IDE(软件系统开发环境)是套件中可用的最简单的架构。 它用作为Firefox插件,因此安装和采用非常简单。 通过极少的编程知识和接近零的培训,就能已经开始采用Selenium IDE。 对于初学者,要了解Selenese命令,还要了解JAVA语法,这是一个很好的工具。

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

更多请阅读:https://www.yiibai.com/hotnews/tempa/ide-benefits-limitations.html

优点:

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

缺点:

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

//更多请阅读:https://www.yiibai.com/hotnews/tempa/ide-benefits-limitations.html

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

4. mabl

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

优点:

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

缺点:

记录流程时不采用页面对象模型 采用自己的架构,没有试验JAVA的导入导出 虽然存在 CI 软件系统,但您无法将解决方案直接软件系统到现有架构中 如果某些事情没有按您预期的方式工作,则很难访问“标识符”以展开配支持

5.TestIM

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

优点:

试验非常容易创建,具有直观的采用者界面 推荐智能定位器,以及维护它们的绝佳策略 多种试验模式:TestIM 提供了多种试验模式,包括模块试验、软件系统试验、起新端测试等,能满足不同场景和需求的试验需求。 智能化试验:TestIM 支持智能化试验,能采用 Python、Java 等编程语言撰写试验JAVA,提升试验工作效率和准确性。 试验报告:TestIM 提供了可视化的试验报告,能实时展示试验结果和缺陷数量,协助开发者加速了解试验进展情况。 团队协作:TestIM 支持团队协作和任务分配,能方便地管理和协调试验任务,提升试验工作效率和质量。 云环境支持:TestIM 支持云环境布署和运行,能方便地在不同设备和环境中展开试验和布署。

缺点:

在他们的试验中不采用页面对象模型 缺乏导入和导出试验JAVA的能力 采用者无法访问标识符或从 TestIM 中展开试验 供应商锁定架构——JAVA在 TestIM 架构中 对 BDD 的支持不明确

6. Functionize

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

优点:

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

缺点:

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

7. Perfecto

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

优点:

采用页面对象模型(但仅在其生成的试验中) 为记录的 Web 元素提供多个定位器 前段时间引入了故障恢复(虽然有点不清楚它的作用或操控性如何)

缺点:

试验JAVA采用如前所述 TCL 的专有语言 不能导入自己的 Selenium JAVA 虽然它们提供 CI 软件系统,但它并未直接软件系统到您现有的架构中 BDD 通过第三方实施支持,Project Quantum

8. TestCraft

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

优点:

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

缺点:

采用专有架构 您不能导入/导出试验JAVA 不直接软件系统到您现有的架构中(CI 软件系统可用作插件) 学习曲线较陡峭:TestCraft 的功能很多,因此须要一定的学习曲线,须要花费一定的时间来了解它的采用方式。 繁杂度比较高:TestCraft 的采用须要一定的控制技术能力,如果不熟悉试验理论、方式和工具,可能会感到繁杂和困难。 费用较高:TestCraft 是一类商业试验架构,须要支付一定的费用。

9. Squish

优点:

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

缺点:

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

10. AutonomIQ

优点:

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

缺点:

采用专有架构 您无法导入试验JAVA 不直接软件系统到您现有的架构中(CI 软件系统可用作插件) 不完全成熟的控制技术

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务