<!-- 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也就是对象库的自动化模型对象。
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中的所有方法,如图
2.准备一个TSR格式的对象库文件,还是以百度为例,我们在对象库中添加一个搜索文本框对象,两个链接对象(贴吧、知道)后并导出TSR文件
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的帮助文档里也没有提到
执行完以上脚本之后我们重新打开之前的那个TSR文件可以清楚的看到之前LINK类的"知 道"对象的对象名和属性名已经都被改成了"图 片",此时原来的知道对象就已经不存在了,而图片这个对象则取代了它的位置,当我们选择图片这个对象然后点一下高亮之后,可以清楚看到这个对象已经定位在图片链接上了
AOM总结:
总结一下这两章的内容:AOM的作用主要是通过QTP外部使用脚本语言调用其COM自动化对象模型来对其工具和对象库进行自由的操作,甚至可以在我们自己的应用中调用它,从而达到自动化工具和对象库的效果,这些都是在我们自己开发自定义测试框架的时候非常有用的。
<noscript></noscript>