软件测试培训
美国上市软件测试培训机构

400-111-8989

热门课程

对象库介绍-QTP自动化测试

  • 时间:2016-09-12
  • 发布:软件测试培训
  • 来源:软件测试教程

对象库

QTP在对象库(OR)里为每一个被测对象存储了一个对象定义。该定义包含了一些用来唯一识别运行时对象的参数值。QTP Object Repository Manager 是用来查看和修改对象库中的对象及其属性的。

Object Repository Manager

图 3-1. Object Repository Manager

图3-1,展示了一个简单的对象库。这个对象库有一个WinToolbar对象,包含了一个可以用来识别的逻辑名"Running Applications"和两个属性:"Text" 和"nativeclass" .我们可以点击"Add/Remove"按钮来添加或者删除属性。图3-2显示了从Object Identification打开的Add/Remove Properties对话框,它可以用来添加或删除任意的属性。

提示:在对象库的树视图中选择一个对象后,点击'Highlight'按钮,应用程序(必须是打开的)中的对象将会高亮显示。同样,在代码中也可以实现高亮:Window("Window").WinToolbar("Running Applications").Highlight.

Add/Remove Properties

图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"
'获取已修改的属性
ewName = oWebEdit.GetTOProperty("name")
MsgBoxnewName

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

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

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

对象库模式

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

每个Action的对象库设置

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

每个Action对应的公共对象库

每个Action对应的公共对象库

上一篇:自动化测试流程-QTP自动化测试
下一篇:对象探测器-QTP自动化测试
选择城市和中心
贵州省

广西省

海南省

台湾