对象识别在QTP/UFT中是如何工作

什么是物体识别?

QTP还使用类似于“活体”的技术来识别物体。在记录期间,Time QTP尝试在运行时执行LE,Micro Focus UFT将存储的对象属性与屏幕上可用对象的实际属性进行比较,并独立于对象在屏幕上的位置唯一地标识该对象

存储的对象及其属性称为测试对象。在运行时,测试应用程序上可用的实际对象称为运行时对象。这是HP UFT的“测试对象模型”

什么是对象存储库?

有关测试对象的信息存储在对象存储库中,加载项可以提前指示要记录的对象的性质进行快速测试,从而减少查看其属性所需的时间

QTP将对象及其属性存储在对象存储库中,以便在运行时识别它们。例如,在Web环境中,按钮可以具有以下关联属性。

How Object Identification works in QTP
How Object Identification works in QTP

如果QTP将尝试并记住对象的所有可用属性,则对象存储库的大小将会膨胀,脚本执行时间将急剧增加。要避免此针对各种环境和对象的 properties(to be saved during record time) 选择存储在对象标识中。

对象描述、必选和辅助属性

对象属性及其值称为对象描述。例如,Web Button属性“Name”及其值“Login”对象一起可以被称为Web Button的对象描述。

要访问,在工具菜单的QTP中,选择对象标识。在对象识别对话框中,可以看到已安装和加载的所有环境的下拉列表。

可以选择一个环境,QTP会自动填充属于该环境的所有受支持对象的列表。该列表分为以下几个部分

  1. 默认情况下,将为该对象存储必填属性
  2. 辅助属性在脚本QTP的记录时间内无法创建对象的唯一描述,它将存储辅助属性

为了更好地理解,见如下Web图像的示例。

How Object Identification works in QTP
How Object Identification works in QTP
  • QTP将存储ALT、HTML标记、图像类型、强制属性的值,即使它可以仅使用ALT属性唯一地标识它。
  • 如果无法使用强制属性创建唯一描述,则QTP将存储辅助属性。在这种情况下,QTP将存储类属性。
  • 如果此属性有助于创建对象的唯一描述,则QTP不会存储文件名、高度属性。如果filename属性创建唯一的描述,QTP将不会存储Height属性,依此类推。
  • 假设在记录时间内,QTP只存储了类属性。在运行时,QTP将忘记强制属性和辅助属性之间的区别,并比较所有记录的属性。
  • 即使任何一个属性与其存储值不匹配,脚本也会失败

IT赶路人

专注IT知识分享