提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
原创|使用教程|编辑:郑恭琳|2020-10-16 10:30:44.710|阅读 384 次
概述:Salesforce允许开发人员以抽象的方式定义其业务逻辑和UI元素,以便Salesforce可以在页面上实现这些元素。这种灵活性是以牺牲UI测试自动化为代价的,因为开发人员无法直接控制浏览器中的最终内容。众所周知,使用诸如Selenium之类的开源自动化框架很难测试Salesforce企业应用程序。让我们探讨一些难以测试Salesforce Enterprise应用程序的原因以及如何解决这些问题。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
Salesforce近年来已成为主导的CRM平台,在2018年全球市场份额为19.5%。这是最接近的替代SAP的两倍以上,是Oracle的三倍以上。成功来自以其自己的Apex面向对象编程语言和Lightning Web Component框架为目标的企业应用程序开发。
Salesforce允许开发人员以抽象的方式定义其业务逻辑和UI元素,以便Salesforce可以在页面上实现这些元素。这种灵活性是以牺牲UI测试自动化为代价的,因为开发人员无法直接控制浏览器中的最终内容。众所周知,使用诸如Selenium之类的开源自动化框架很难测试Salesforce企业应用程序。让我们探讨一些难以测试Salesforce Enterprise应用程序的原因以及如何解决这些问题。
元素标识符是定位和自动进行与Selenium的网页交互的一种常用方法。Selenium中的@FindBy批注具有一个简单的id=”something”属性,可通过页面上的唯一ID来定位Web元素。
非典型元素标识符
Salesforce应用程序中的元素标识符看起来很奇怪:例如,id=”940:1376;a”。更糟糕的是,这些标识符在页面访问之间随机变化。这使得标识符对测试自动化毫无用处。在下面的示例中,请考虑当每次测试运行ID更改时,Selenium测试应如何定位<input>元素。
提示与技巧
<input>元素没有其他唯一定义的属性。幸运的是,Salesforce符合最新的Web可访问性准则。 WCAG关于信息和关系的第1.3.1节要求通过将标签的“for”属性与输入的“id”属性相匹配,将人类可读的<label>元素与代码中的相应<input>关联。元素标识符可能会在每次加载页面时更改,但标签文本应始终相同。
在此示例中,“Company Name”文本包含在具有属性for=”940:1376;a”的<label>内,该文本恰好与<input>元素上的标识符匹配。Selenium测试可以使用聪明的XPath建立从标签文本到输入元素的连接://input[@id=//label[normalize-space(.)=’Company Name’]/@for]。
此XPath使用“id”属性等于显示“Company Name”的<label>的“for”属性来查找页面上的任何<input>元素。在本示例中,normalize-space(.) XPath函数消除了文本中多余的空格,该空格被包裹在<label>元素内的<span>内。它使Selenium测试看起来更加复杂,但是可以完成工作。
缓慢的云端托管企业应用程序
尽管名称为“Lightning”,但是Salesforce的云托管企业应用程序有时可能会非常慢。测试自动化工程师熟悉响应速度可能很慢的应用程序所带来的挑战。如果测试脚本尝试在应用程序准备就绪之前执行下一步,它将失败。
对测试延迟几秒钟的硬编码可能会比大多数时候所需的时间暂停更长的时间,并增加了测试运行的总时间。为了延迟足够长的时间,等待必须是有条件的。通过在页面上渲染加载叠加蒙版,Salesforce使得难以使用典型的Selenium流利等待条件。
Selenium具有对动态等待条件的内置支持。它每秒检查几次元素是否存在或可点击性-直到出现错误之前最多要花费最长时间。问题在于Selenium的内置等待条件都无法处理Salesforce中的加载叠加。Selenium检测到加载面罩下的元素确实存在并且未被禁用。它停止等待并尝试单击它。这导致异常,因为点击被加载叠加层拦截。
提示与技巧
并非所有希望都消失了。Selenium代码的另外几行使得捕获此单击拦截的异常并使用相同的等待循环和超时重试成为可能。
记住并重新初始化Lightning UI组件
UI测试自动化方面的另一个棘手问题是,Salesforce记住上次打开哪个Lightning UI组件,并在登录时重新初始化最后一个已知状态。这意味着可用于测试的初始页面布局可能会根据保存的历史记录进行更改。
提示与技巧
减少先前状态影响的一种方法是测试隐身启动浏览器。通过在测试类的设置方法中传递选项,Selenium使得使用Google Chrome浏览器更容易做到这一点。
此处显示的其他选项使浏览器提示无法与Salesforce共享位置,因为Selenium测试可能会在播放期间卡在此权限提示上。最大化浏览器窗口可在屏幕上显示更多元素。它还减少了测试在单击元素之前滚动到元素的需要。如果测试仍然需要滚动到页面下方的某个元素,则Selenium可以执行此JavaScript命令来完成此操作。
使用Selenium自动UI测试来测试Salesforce Enterprise应用程序的好处
这些提示和技巧使使用Selenium进行Salesforce企业应用程序的自动UI测试变得切实可行。测试自动化是更改企业应用程序中的业务逻辑或Web组件后快速检测回归的一种重要方法。Salesforce本身每年还会发布几次更改。一套Selenium测试是在正式投入生产之前快速检查沙盒中最新Salesforce更新兼容性的一种好方法。
使用AI技术增强Selenium自动化的UI测试
如果您自己将这些技巧付诸实践似乎工作太多,请考虑使用有效地自动执行Selenium测试创建并简化测试维护。使用,您可以在浏览器中记录与Salesforce企业应用程序的交互。然后轻松创建利用所有这些相同技术的Selenium测试类。
的集成Recorder提供了应用程序选择,因此您可以选择在记录UI操作时收集Salesforce特定的属性。然后,在创建Selenium UI测试时会合并这些属性,并使用AI技术对由于定位器或等待条件的更改而中断的测试应用自我修复。要了解更多信息,请查看Selenic视频并下载。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn
本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
针对 C/C++ 软件开发提供统一、完全集成的测试解决方案。
Parasoft Jtest用于应用软件开发的集成Java测试工具
Parasoft dotTEST降低C#和VB.NET开发风险,有效地实现符合C#和.NET开发的测试工具的要求
Parasoft Insure++针对C和C++应用程序的运行时内存泄漏检测和内存调试
Parasoft SOAtest人工智能和机器学习赋能 API 和 Web 服务测试
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@pclwef.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢