如何在自动化测试中处理对象结构的变化?

时间:2014-05-18 13:27:12

标签: automated-tests ui-automation qtp testcomplete

我很想知道在创建自动化测试用例时,从依赖到应用程序的内部结构是多么可行。或者,当开发人员修改代码的一部分以进行错误修复等时,您可能需要重写测试用例。 我们可以根据应用程序内部对象结构编写几个自动化测试用例,但是假设对象层次结构在6个月左右后发生了变化,我们如何处理这类问题?

3 个答案:

答案 0 :(得分:1)

我不能说其他测试工具,但至少在QTP的情况下,测试工具引入了应用程序的抽象级别,因此应用程序中的非功能性更改通常(但不总是)对方式没有影响测试工具识别对象。

例如,在QTP中,所有Web元素都被视为文档的直接子元素,因此DOM中的更改(例如附加table)不会更改对象的描述。

答案 1 :(得分:1)

在TestComplete中,有几种方法可以确保更改的应用程序结构不会破坏您的测试。

  1. 您可以设置名称映射功能的别名树。在这种情况下,如果更改了应用程序结构,则需要适当地修改别名树,您的测试将保持工作状态,而无需修改它们。

  2. 您可以使用名称映射的扩展查找功能,以忽略实际对象树的某些部分,并在更深层次上搜索所需的对象。

答案 2 :(得分:1)

由于DOM结构的变化,这是我在失去所有工作两次后被迫做的事情:

每次我需要使用一个对象时,我使用Find函数和对象的ID,在Page对象上搜索对象。这样,每当DOM更新时,我的测试仍然可以顺利进行。 唯一会破坏我测试的是对象的ID是否会发生变化,但这种情况不太可能发生。

Here你可以找到我使用的辅助函数的一些例子。