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

发表于:2015-11-25来源:uml.org.cn作者:不详点击数: 标签:QTP自动化测试
图3-2.Add/Remove Properties 对象是如何被添加到对象库的? 对象可以通过两种方式添加到对象库: 1、通过录制与被测应用程序的交互过程添加。 2、手工添加一

  图3-2.Add/Remove Properties

  对象是如何被添加到对象库的?

  对象可以通过两种方式添加到对象库:

  1、通过录制与被测应用程序的交互过程添加。

  2、手工添加一个或多个对象。

  我们可以点击"Add Objects"按钮,然后点击我们要添加的对象,通过这种方式,我们便可以手工添加对象到对象库中。

  注意:假如我们要添加的对象是在鼠标点击之后才出现,那么我们可以先按下Ctrl键,然后再去点击。这个方法可以让我们临时屏蔽对象选择模式,从而进行鼠标操作。一旦我们准备好了要添加的对象,就可以放开Ctrl键,进行添加了。

  如果我们需要在应用程序间切换,可以先按住Ctrl+ALT键去屏蔽对象选择模式,然后使用例如Alt+Tab键来在不同的应用程序间切换,完成切换后,再次按下Ctrl+ALT键后便可进入对象选择模式并添加对象了。

  对象一旦被选中,便会在对象选择窗口中出现

  图3-3.对象选择

  本对象选择窗口显示了Web页面上的完整的对象结构。选择你需要添加的对象然后点"OK"键就可以了。

  小提示:对象选择窗口显示的对象可能会和录制到对象库的不一致。QTP只保留能识别对象的必须的对象结构,这样就可以在测试脚本使用对象时,减少代码的长度。

  如果我们选择一个Page对象,然后继续,QTP就会询问我们是否要添加它的子对象。

  图 3-4. 对象选择

  选择Selected object and all its descendants这个单选按钮,然后点击OK, 页面上所有的对象都会被添加到对象库中去。

  提示:对象库不能添加页面上的隐藏对象。

  测试对象和运行时对象

  测试对象(TO):测试对象是QTP定义的一些类,用它们来代表被测应用的各种对象。

  运行时对象(RO):运行时对象是实际的被测应用的对象,是测试执行过程中,TO用来关联的对象。

  理解这两种对象类型的区别是非常重要的。可以看成两辆车;车A和车B,QTP能在脚本里用一辆车的测试对象来描述出两辆车A和B。除此之外,每个测试对象也提供了用来和运行时对象交互时相关联的方法和属性。

  比如Start,Run和Stop都是汽车对象提供的有用的方法。

  TO属性

  测试对象的属性是QTP为了识别在测试执行过程中的运行时对象而保留在对象库中的属性。QTP提供GetTOProperties方法来列举对象的所有的TO属性.GetTOProperty和SetToProperty则分别用了读取和修改TO的属性值。

  问题 3-1. Test Object 属性的使用

'获取webeidt对象
Set oWebEdit = Browser("").Page("").WebEdit("")
'获取webedit对象封装属性集合
Set TOProps = oWebEdit.GetTOProperties()
Dim i, iCount
iCount = TOProps.Count - 1
'遍历所有封装属性
For i = 0 ToiCount
'获取属性名
sName = TOProps(i).Name
'获取属性值
sValue = TOProps(i).Value
'检查是否为正则表达式
isRegularExpression = TOProps(i).RegularExpression
'显示结果
MsgboxsName&"->" &sValue&"->" &isRegularExpression
Next

  问题 3-2. 运行时改变Test Object 属性

'获取webedit对象
Set oWebEdit = Browser("Browser").Page("Page").WebEdit("txtName")
'获取webedit的name封装属性值
oldName = oWebEdit.GetTOProperty("name")
'变更webedit对象的name封装属性
oWebEdit.SetTOProperty"name","new value"
'获取已修改的属性
newName = oWebEdit.GetTOProperty("name")
MsgBoxnewName

  问题 3-3. 测试中获取运行时对象属性

'x为WebEdit对象运行时的value属性值
x = Browser("").Page("").WebEdit("").GetROProperty("value")
MsgBoxx

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