繁体   English   中英

ui自动化的唯一标识符

[英]Unique identifiers for ui automation

我们的ui自动化团队正在寻求一种更好的方法来为自动化测试选择元素。 我的想法是我们可以为每个可测试元素注入一个专用属性(比如说“ui-auto”)。 此属性的值为:

  • 独特
  • 持久性(不会跨会话或页面加载而改变,以免破坏测试)
  • 可预测的(遵循一些命名约定,具体取决于操作类型,位置等)

我的问题是:

  1. 这是一个好主意吗? 欢迎更好的想法。
  2. 现有惯例吗?
  3. 实现这个的最佳方法是什么?

我应该提到我们正在使用angular,我认为使用某种指令和/或服务可以帮助自动化。

我还应该说我不想使用“id”属性b / c我想在开发问题之间分离(id可以用于javascript),qa关注(选择自动测试的元素)

在我们的实现中,我们向DOM元素添加了一个data-awt属性,该值由上下文(页面和模式)类型和唯一字符串组成。 当我们使用EXTJS库时,我们的类型是xtype,唯一的字符串是组件名称或文本属性。 上下文是开发人员通过在最上面的父项上放置一个唯一属性来控制的,所有子项都使用它作为它们的上下文。

在实践中,我们最终得到数据awt值,如devicesListing-button-edit,deviceDetails-displayfield-name,deviceDetailsEditWindow-textfield-name。

我们发现依赖于css,id或其他属性是不可靠和可预测的,因为我们不想在有任何UI更改时重写我们的测试。 现在,如果现有元素更改其名称,则测试仅需要更新(例如,PM表示名称字段现在应该使用来自DTO的“客户”数据)。

您还可以使用元素的类,并提供前缀为“auto_”或“t_”之类的唯一标识符。

该协议存在,如果任何人用该前缀更改类名,测试将中断。

@ o4ohel我同意不使用id更好,因为开发人员也依赖于他们,他们有时需要改变。 应该隔离自动化的标识符。 有这种分离是很好的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM