【软件测试自动化-QTP系列讲座 12】 == AOM应用(二) Object Repository Automation ==

<!-- google_ad_client = "pub-9907354422678176"; /* 728x15, 创建于 09-11-7 */ google_ad_slot = "1583278733"; google_ad_width = 728; google_ad_height = 15; // -->

<!-- google_ad_client = "pub-9907354422678176"; /* 300x250, 创建于 09-11-6 */ google_ad_slot = "7174351800"; google_ad_width = 300; google_ad_height = 250; // --> <!-- google_ad_client = "pub-9907354422678176"; /* 300x250, 创建于 09-11-6 */ google_ad_slot = "7174351800"; google_ad_width = 300; google_ad_height = 250; // -->

上一章我们介绍了quicktest Automation 也就是QTP的自动化模型对象 今天这一章主要讲解的是Object Repository Automation也就是对象库的自动化模型对象。

  • ORAOM ---- Object Repository automation object model (对象库自动化模型对象)

Description:

就像QTP自动化模型对象来自动化QTP的操作一样,可以在QTP外部使用ORAOM中对象和对象的方法通过写脚本来完成多个对象的共享操作,而不是使用Object Repository Manager来手工的进行操作,比如测试对象的增删改,XML对象库的导出和导入,检索以及复制测试对象等等。

instructions:

Object Motel

Description

ObjectRepositoryUtil

可以在QTP外部对对象库文件中的对象进行操作和管理

TOCollection

测试对象的集合,可以通过ObjectRepositoryUtil返回

Example:

1.在vbsEdti中创建ObjectRepositoryUtil对象

Set autoRepository = CreateObject("Mercury.ObjectRepositoryUtil")

创建完对象后可以在OBJECT BROWSER中查看ORAOM中的所有方法,如图

【软件测试自动化-QTP系列讲座 12】 == AOM应用(二) Object Repository Automation ==_第1张图片

2.准备一个TSR格式的对象库文件,还是以百度为例,我们在对象库中添加一个搜索文本框对象,两个链接对象(贴吧、知道)后并导出TSR文件

【软件测试自动化-QTP系列讲座 12】 == AOM应用(二) Object Repository Automation ==_第2张图片

3.当我们保存好TSR文件之后,就可以使用ORAOM来导入TSR文件并对其进行操作,代码如下:

  • 遍历对象库找到对应的测试对象并对其进行对象名和属性名的更改

'********************* scripting by zzxxbb112 *********************
Option Explicit '强制所有变量的显式声明
Dim autoRepository,TOCollection,testobject,i '声明变量
Set autoRepository = CreateObject("Mercury.ObjectRepositoryUtil") '创建ORAOM对象
autoRepository.Load "d:\baidu.tsr" '导入对象库文件
Set TOCollection = autoRepository.GetAllObjectsByClass("Link") '获取所有链接类的对象集合
For i=0 To TOCollection.count-1 '遍历所有测试对象
Set testobject = TOCollection.item(i) '获取测试对象
If autoRepository.GetLogicalName(testobject) = "知 道" Then '判断对象名称为“知道”执行一下操作
testobject.SetTOproperty "text","图 片" '更改对象库的TEXT属性为“图 片”
autoRepository.UpdateObject testobject '更新对象
autoRepository.RenameObject testobject,"图 片" '重命名对象名称
autoRepository.Save '保存对象库
Exit For '退出循环
End If

Next

Set testobject = Nothing
Set TOCollection = Nothing
Set autoRepository = Nothing
'释放所有对象
'******************************* end ****************************

注意:经本人研究,以上代码的对象释放不可省略,并且要由里向外的释放,否则会造成运行时报错,这一点在QTP的帮助文档里也没有提到

【软件测试自动化-QTP系列讲座 12】 == AOM应用(二) Object Repository Automation ==_第3张图片

执行完以上脚本之后我们重新打开之前的那个TSR文件可以清楚的看到之前LINK类的"知 道"对象的对象名和属性名已经都被改成了"图 片",此时原来的知道对象就已经不存在了,而图片这个对象则取代了它的位置,当我们选择图片这个对象然后点一下高亮之后,可以清楚看到这个对象已经定位在图片链接上了

【软件测试自动化-QTP系列讲座 12】 == AOM应用(二) Object Repository Automation ==_第4张图片

【软件测试自动化-QTP系列讲座 12】 == AOM应用(二) Object Repository Automation ==_第5张图片

AOM总结:

总结一下这两章的内容:AOM的作用主要是通过QTP外部使用脚本语言调用其COM自动化对象模型来对其工具和对象库进行自由的操作,甚至可以在我们自己的应用中调用它,从而达到自动化工具和对象库的效果,这些都是在我们自己开发自定义测试框架的时候非常有用的。

<noscript></noscript>

你可能感兴趣的:(框架,Google,脚本,软件测试,百度)