Salesforce上的UI测试自动化

测试自动化可能很棘手,对于测试和质量工程师来说,过渡到最佳实践,使用哪种工具以及在过渡到Lightning时更新自动化都是不常见的。该博客文章介绍了Salesforce上UI测试自动化的前景,重点是Salesforce测试和可用解决方案的独特考虑因素,因此您可以做出明智的决定,确定哪种UI测试自动化解决方案最适合您的Salesforce组织。

测试自动化可能很棘手,对于测试和质量工程师来说,过渡到最佳实践,使用哪种工具以及在过渡到Lightning时更新自动化都是不常见的。该博客文章介绍了SalesforceUI测试自动化的前景,重点是Salesforce测试和可用解决方案的独特考虑因素,因此您可以做出明智的决定,确定哪种UI测试自动化解决方案最适合您的Salesforce组织。


Salesforce平台上进行测试的独特注意事项

Salesforce上的UI测试自动化在测试创建和测试维护方面都表现出一些独特的特性。

测试创建

借助Lightning,我们做出了一个有意识的决定,即在元素上隐藏标识符。这样可以防止开发人员直接依赖于随时间变化的实现细节。从开发的角度来看,这种不透明性改善了组件的长期可维护性,但它妨碍了UI测试自动化,而UI测试自动化过去一直依赖于这些类型的实现细节来识别页面上的可视元素。

此外,Lightning Web Components将影子文档对象模型(Shadow DOM)用作隔离机制,以防止组件相互影响。组件之间的Shadow DOM边界打破了在页面上定位元素的传统方式。

测试维护

Salesforce致力于不断提高可用性,以便为客户提供新颖,更高效的方法来实现其业务目标。此外,我们最近将页面从Aura迁移到Lightning Web Components的努力导致其底层结构发生了重大变化。所有这些更改的副作用之一是对测试维护的影响。因为这些改进修改了文档对象模型(Document Object ModelDOM)结构,所以依赖DOM中特定实现细节的测试往往很脆弱,并且需要不断地更新发行版之间的内容。

解决方案

如果要在Salesforce上自动化UI测试,则可以使用三种潜在的解决方案。对于每种解决方案,我们都会牢记重要的注意事项。

独立软件供应商的商业现货产品

Salesforce生态系统中的第三方付费解决方案允许您通过“点击而不编码”构建一套自动化的UI测试,这对于UI测试自动化而言确实是一个不错的选择。负责这些解决方案的独立软件供应商会在每个Salesforce版本中更新其工具链,以确保基于其解决方案构建的测试能够继续平稳运行。这些解决方案最适合拥有管理资源的客户,他们对基于点击的解决方案感到满意。

关键注意事项

  • 客户负责通过无代码解决方案实施测试套件
  • 由于供应商不断更新其框架以抽象化与每个Salesforce版本相关的页面更改,因此降低了测试维护成本
  • 许可证可能会很昂贵
  • 测试无法轻松移植到其他测试框架(供应商锁定)

与系统集成商合作构建自定义测试自动化基础架构

如果您的内部工程和管理资源最少,和/或现有的System Integrator关系有限,则此解决方案可能适合您。作为Salesforce生态系统的一部分,有许多系统集成商合作伙伴可为不希望内部构建自己的软件解决方案的客户提供全方位服务的解决方案。对于没有所需人员来构建和维护自己的测试自动化系统的客户来说,与系统集成商合作构建定制的测试自动化基础结构可能是最可行的解决方案。在系统集成商已经在执行Salesforce定制的情况下,将合同扩展到包括UI测试自动化可能是一种逻辑策略。

关键注意事项

  • 第三方咨询合作伙伴提供的全方位服务解决方案
  • 系统集成商服务可能会很昂贵
  • 对于已经与系统集成商建立合作关系的客户,添加UI测试自动化服务的边际成本可能低于与仅用于测试自动化的与系统集成商建立新关系的成本
  • 系统集成商正在进行的测试维护可能需要单独的服务合同
  • 根据实现的不同,测试可以移植到其他测试框架

开源测试框架

最后,我们的第三个也是最自定义的解决方案是使用开放源代码测试框架,该框架适用于上述选项不够用且您拥有大量工程资源的情况。有多种开源测试框架可用于UI测试自动化,以实现基于浏览器的体验。我们简要讨论了最常见的问题,但是您可以探索和使用其他内容。

Core Selenium

Selenium WebDriverW3C WebDriver规范的最流行的实现。尽管它很流行,但它为测试自动化提供了简单的支持,并且经常需要其他辅助工具来补充其基本功能。例如,与WebdriverIO相比,它没有对Shadow DOM的内置支持。寻找Shadow DOM支持的客户需要自己实现这些功能。

WebdriverIO

WebdriverIO是基于WebDriver规范的基于JavaScript的现代测试框架。它提供了Selenium中不可用的大量功能,包括作为一流公民的Page对象和本机Shadow DOM遍历。但是,它仍然需要大量且持续的工程投资。

关键注意事项

  • 客户负责通过Pro Code技术实施和维护测试基础结构和测试套件(需要工程资源)
  • 开源框架和工具是免费的
  • 从工程的角度来看,对测试套件的持续维护可能会付出高昂的代价
  • 测试可以通过相对较小的修改移植到其他测试框架

独特性

对于给定的Salesforce组织,在UI测试自动化策略中需要考虑多个独特因素,但是Salesforce生态系统中有许多可用的解决方案。根据每个Salesforce客户的特点,使用哪种解决方案的决定会有所不同。

链接与资源

对于那些对使用开放源代码测试框架感兴趣的人,这里有一些技术资源,可以帮助您克服在Salesforce平台上进行测试时遇到的一些独特问题。

缺少元素标识符

  • 链接自定义定位器
  • 使用定位器链接查找子元素

影子DOM封装

  • WebdriverIOShadow DOM支持和可重用组件对象
  • 使用Selenium处理Shadow DOM的指南

不断变化的页面结构

  • WebdriverIO:页面对象模式
  • 硒测试的页面对象模式入门

关于作者

Jonathan Au推动了跨越Salesforce平台的各种大规模战略计划。他对技术的变革力量充满热情,并且是终身学习者。您可以在Trailblazer.me上关注他。

标签:

来源:慧都

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年1月6日
下一篇 2021年1月6日

相关推荐

发表回复

登录后才能评论