Automation 独立于ui更改的测试用例自动化

Automation 独立于ui更改的测试用例自动化,automation,Automation,我们正在为硬件设备(如tv、raspberrypi等)自动化测试用例,这些设备需要执行一定数量的步骤,并在每个步骤结束时检查预期结果。为了自动化这些测试用例,我们使用dom元素属性,如id、类、数据组件id等来获取对象并执行操作。 这种自动化方式的问题是,每次UI更改时,我们都需要更改dom元素id、类等,因此这是对脚本的返工。 我想知道是否存在自动化框架或任何其他方法,我们可以使用这些方法来自动化测试用例,而不依赖于ui更改。不要使用确切的路径,而是尝试以更通用的方式识别元素。使用“conta

我们正在为硬件设备(如tv、raspberrypi等)自动化测试用例,这些设备需要执行一定数量的步骤,并在每个步骤结束时检查预期结果。为了自动化这些测试用例,我们使用dom元素属性,如id、类、数据组件id等来获取对象并执行操作。 这种自动化方式的问题是,每次UI更改时,我们都需要更改dom元素id、类等,因此这是对脚本的返工。
我想知道是否存在自动化框架或任何其他方法,我们可以使用这些方法来自动化测试用例,而不依赖于ui更改。

不要使用确切的路径,而是尝试以更通用的方式识别元素。使用“contains”将有助于您识别具有文本属性的元素,而不会影响其定义方式。因此,即使DOM结构发生变化,但如果文本相同,测试也不会失败

包含

它是一个非常方便的XPath Selenium定位器,有时还可以节省测试自动化工程师的生命。如果元素的属性是动态的,则可以对web元素的常量部分使用contains(),但也可以在需要时在任何情况下使用contains()

语法://标记[包含(@attribute,'value')]

示例://input[包含(@id,'er messa')]

示例:

爪哇 1. 2. 3. 4. 5. 6. 7. 8. //*[包含(@name,'btnClk')] -->它在“btnClk”中搜索DOM中的所有名称属性

//*[包含(text(),'here')] -->它在DOM中搜索文本“here”

//*[包含(@href,'swtestacademy.com')]
-->它在DOM中搜索“swtestacademy.com”链接。

这就是如果可能,您应该使用
id
选择器的原因。它们应该是唯一的,因此不受UI更改的影响。
名称
选择器的工作方式应相同

如果您使用的是Selenium,请按优先顺序(不严格地)使用以下对象定位器列表:

  • 身份证
  • 名字
  • 标签名
  • 阶级
  • CSS或Xpath
  • 链接文本或部分链接文本
如果您真的希望元素能够一致地被识别,那么您可以与开发人员交谈,让他们很好地添加ID