4

是否有一个系统用于注释 HTML 以识别对 Web 用户界面测试自动化至关重要的元素/属性(通过 Selenium、HTMLUnit、Watir、Sahi 等)?该系统可能是标准或库。例如,注释可以实现为 HTML 数据属性,这些属性仅引用属性名称、XPath 表达式或 CSS 选择器,这些选择器需要存在并保持一致以用于测试自动化目的。如果已识别的属性/元素发生变化,测试自动化可能会中断,因此开发人员不应在未与负责自动化的人员协调的情况下更改它们。因此,注释至少是对开发人员的视觉提示。

但除此之外,也许系统的“执行器”部分(持续集成插件、CLI 或同一页面上的 JavaScript 库)会在一定程度上强制执行注释,如果不满足某些条件,则会快速而明显地失败。可能标识的属性/XPath/选择器必须存在并引用定义注释的相同元素。执行器还可以收集所有注释,并可能在 Web 应用程序的每个页面上报告它们的完整列表,以用于差异通知。

我可能有一些细节没有很好地解决,但希望我正在寻找的要点是有意义的。免费许可证会很方便,但不是绝对必要的。

这样的事情存在吗?

一个有用的答案也可能是:

  • 有一种更好的方法可以满足您的潜在需求(附有解释)。
  • 我们尝试实现这一点,但不值得;这就是为什么。

动机: Web 用户界面测试可能对 HTML 元素和属性的更改很敏感。测试通常在集成测试作业或阶段运行,这可能比构建或单元测试晚得多。在构建或单元测试阶段更早地发现 UI 元素和测试期望之间的一些潜在不匹配,并为测试自动化工程师提供更多信息以指示测试中的错误与被测产品中的错误。

4

1 回答 1

1

正如你所说:

例如,注释可能被实现为 HTML 数据属性

这就是人们使用 HTML5 的方式,因为它使我们能够将控制权交给我们的 QA 自动化团队,并让开发团队忽略他们的顾虑(更改元素上的 ID 会影响他们的测试)。

所以,一个 HTML 元素可能看起来像(一个相对人为的例子):

<div id="button" data-test-attribute="submit"></div>

这些库使用的大多数选择器都使用面向 CSS 的选择,使得选择上述方法变得容易。有许多文章已经开始解决这个问题。

我喜欢的一个非常简短的陈述:

ID 和 css 类名除了用于 UI 自动化测试之外还有另一个目的。Css 类主要用于样式元素,它们也可以在生产页面上被丑化。ID 还有另一个目的,有时也可以更改,或者因为它们会干扰页面上的其他功能而无法实现。

您问题的另一部分似乎与执法有关。使用 Node.js 和 webpack 之类的东西,通过手工制作的东西将这相对简单地集成到您的构建过程中(可能会大大增加您的构建时间 - 但肯定是可能的)。

于 2018-02-24T16:14:46.753 回答