UI自动化中选择器的自我康复



我在JS中进行UI自动化,在JS中,我根据XPATH或CSS选择器识别对象/元素。由于许多不必要的原因 - 由于在不同环境下XPATH的变化,测试正在失败。

我正在寻找想法或方法 - 我的自动化脚本自我治愈以识别更改的XPATH/CSS选择器和更新或使用更改的选择器运行。

有办法 - 我可以在运行时实现这一目标,以自我治愈我现有的JavaScript自动化脚本。

首先,自动化的UI测试本质上需要维护对导致测试失败的页面更改。这些失败通常是由于变化使现有元素选择器不再根据需要起作用的结果。我认为没有任何解决方案可以以编程方式更改这些选择器;您可能必须自己写这个。

我认为最好的方法是

  1. 采用一种定位策略,该策略在尽可能少的DOM依靠DOM的同时唯一识别您的元素。对我来说,理想是拥有独特的ID或其他独特的标签。就我个人而言,我很少使用XPath,因为它最有可能取决于其他元素,增加了需要维护的测试的可能性和频率,这是找到元素的最慢方法。

  2. QA应该从开发过程的一开始,以便尽早确定需要对自动测试进行的任何更改以适应即将到来的功能。此外,QA可以与开发人员合作建立可能的"可测试"产品,通常包括HTML标签的请求,以帮助唯一识别元素。理想情况下,可以在发生开发时进行现有测试所需的更改,因此损坏的选择器不会延迟发布周期。

  3. 最后,我认为我们只需要接受一定程度的片状,并需要维护UI自动化。Google的" Flaky" UI测试的目标是1%或更少。Selenium是一种很棒的浏览器自动化工具,但是编写可靠,可维护和稳健的UI测试需要大量的计划和策略。我认为考虑哪些更改可能会破坏哪些选择器在设计测试和定位器策略时必不可少。一种自动执行此操作的工具,将很棒,我相信有一些团队正在努力创建一种使用人工智能来创建方法的方法,但是尚无公开使用。

最新更新