在之前的一篇文章中,我提供了一些使用Selenium测试Salesforce应用的提示和技巧。Salesforce提供了一个灵活的开发环境,允许开发人员以抽象的方式定义他们的业务逻辑和UI元素,以便Salesforce能够在页面上实现这些元素。
这种灵活性是以牺牲UI测试自动化为代价的。因为开发人员无法直接控制浏览器中的最终内容。Salesforce企业级应用在使用Selenium等开源自动化框架进行测试时是出了名的困难。
为什么用Selenium测试Salesforce很困难?
总结一下我在上一篇文章中讨论的问题,以下是使用Selenium测试Salesforce应用程序难以自动化的一些原因。
动态元素标识符
Salesforce应用中的元素标识符看起来非常奇怪,例如,id="940:1376;a"。比这更糟糕的是,标识符在页面访问之间会随机变化。这使得标识符对测试自动化毫无用处。
云托管的企业应用速度慢
尽管名为“闪电”,但Salesforce的云端托管企业应用有时会相当缓慢。测试自动化工程师熟悉响应缓慢的应用程序所带来的挑战。如果测试脚本在应用程序准备好之前尝试执行下一步,就会失败。
记忆和重新初始化Lightning UI组件
UI测试自动化的另一个棘手问题是,Salesforce会记住哪些Lightning UI组件是最后打开的,并在登录时重新初始化最后的已知状态。这意味着,测试可用的初始页面布局会根据保存的历史记录而改变。
频繁的Salesforce软件更新
Salesforce Lightning UI每年都有多次更新。每次