QTP自动化测试权威指南(3)

发表于:2015-02-28来源:uml.org.cn作者:不详点击数: 标签:自动化测
提示:QTP不提供修改运行时对象属性的方法。换言之,没有SetROProperty这个方法。同样, 不同的测试对象都有一个它支持的属性列表,在QTP帮助的对象模型

  提示:QTP不提供修改运行时对象属性的方法。换言之,没有SetROProperty这个方法。同样, 不同的测试对象都有一个它支持的属性列表,在QTP帮助的对象模型参考中可以找到。

  对象库模式

  有两种对象库,更确切的说是对象库模式。

  图 3-5. 每个Action的对象库设置

  每个Action对应的公共对象库

  对象探测器 (Object Spy)

  对象探测器是用来查看对象所支持的方法和属性。启动对象探测功能:Tool->Object Spy…

  点击指针按钮,然后选择一个对象。当选择了Test Object Properties按钮,属性标签页中就会显示出所有可得到的TO属性,并且在方法标签页中会显示所有可获得的方法,如图3-6

  图 3-6. 对象探测对象属性

  若选择了Run-time Object Properties按钮,那么将会显示对象的实际属性或方法,如图3-7

  Figure 3-7. 对象探测实际属性

  大多数的属性值可以通过GetROProperty方法获得。想要了解对象支持的所有属性,可以参考QTP手册。

'获取对象运行时的outerhtml封装属性值
sOuterHTML = Browser("").Page("").WebEdit("").GetROProperty("outerhtml")

  小提示:对象探测器不会显示出任何带有序数识别的属性,例如CreationTime, index or location.

  它们只能在添加到对象库以后计算出来。

  对象识别(Object Identification)

  对象识别是实现测试脚本的关键部分。QTP不能随意的录制对象,它在记录对象的一组属性时是遵循一定结构的。我们可以更改这些属性,以适应应用程序。更改设置可以在 Tools->Object Identification…

  有三种类型的属性可以被QTP用来识别对象:

  1、强制属性 - 强制属性总是被捕捉并保存,即使没有其中的一些属性,对象也能识别也不例外。

  2、辅助属性 - 假如强制属性不足以唯一识别某对象,那么可以依次添加辅助属性,直到对象可以唯一识别。

  3、顺序标识符 - 一旦在使用了强制属性和辅助属性后,对象仍然不能唯一识别,那么可以使用序数识别。有三种类型的序数识别:

  图3-8 对象识别设置

  图3-8 显示了WebCheckBox的强制属性和辅助属性。

  小提示:这些设置是常规的全局设置,并不基于任何脚本。我们可以根据需要添加和删除。

  用户定义的对象

  QTP使用窗体的类名来识别对象的类型。假如我们的应用程序没有使用标准的窗体类,那么QTP就可能无法正确识别对象。Windows的搜索对话框有一些CheckBox放在了自定义的控件内,当我们试图添加他们到 QTP对象库中时,它们只能被识别为WinObject,如图3-9所示。这是由于Qtp不能把这些CheckBox识别成一般的测试对象。

  图3-9 搜索窗口中的CheckBox识别成了WinObject

  因此我们需要在QTP设置中,把这个CheckBox映射成 WinCheckBox.打开Tools->Object Identification ,然后选择标准Windows环境,点击User Defined按钮,就会弹出映射对话框。点击手型按钮,然后点击CheckBox后,类名就被添加,并且我们可以映射到CheckBox,如图3-10 所示。点击Add按钮添加这个映射。

  3-10用户自定义对象映射

  映射后,QTP便可识别这个对象为WinCheckBox,如图3-11所示。

原文转自:http://www.uml.org.cn/Test/201307084.asp