自动化测试专家,专注于自动化测试领域的框架开发及国外最新自动化技术,担任过银行、电子商务等项目的自动化测试工作,精通自动化测试工具QTP、Watir等.并对QTP有过深入的研究,有过企业内训和工具培训经验,希望能与各位同行一起沟通,交流,探讨。 zzxxbb112@hotmail.com

【QTP系列讲座 12】 == AOM应用(二) Object Repository Automation ==

上一篇 / 下一篇  2009-10-17 12:26:30 / 个人分类:QTP系列讲座

上一章我们介绍了quicktest Automation 也就是QTP的自动化模型对象 今天这一章主要讲解的是Object Repository Automation也就是对象库的自动化模型对象。51Testing软件测试网n_5h8sg(BC[G

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

Description:

'G$@$qi ^0

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

2iC NxIA EzIQ0

instructions:

@n W!B]].zY0

Object Motel

`,Bo \X8^0

Description51Testing软件测试网'XE(T5_@ j z

ObjectRepositoryUtil51Testing软件测试网 ~)n*ltx$M4_!J2w2~

可以在QTP外部对对象库文件中的对象进行操作和管理51Testing软件测试网!v&}!o0} V

TOCollection

a}jvYE ]0

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

,y$XPy'nEv0

Example:51Testing软件测试网E@r/}b"K(_:SX s#v

1.在vbsEdti中创建ObjectRepositoryUtil对象51Testing软件测试网3fZ~1rUc ?aX*]

Set autoRepository = CreateObject("Mercury.ObjectRepositoryUtil")51Testing软件测试网+|1`)R3d@`ZtU[R

创建完对象后可以在OBJECT BROWSER中查看ORAOM中的所有方法,如图51Testing软件测试网&b P%e)m4j^7I

未命名51Testing软件测试网OX"OpD{7e

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

?a d6aW0I8L0

未命名51Testing软件测试网:F}NR W:HD2m,}%v$cT

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

Z!^;~g/J%IgL0
  • 遍历对象库找到对应的测试对象并对其进行对象名和属性名的更改

'*********************  scripting by zzxxbb112  ********************* 
bAv?M S(]0Option Explicit  '强制所有变量的显式声明 
Xl7z(r7h f0Dim autoRepository,TOCollection,testobject,i '声明变量 
9g;U:~ltd&@ Hs0Set autoRepository = CreateObject("Mercury.ObjectRepositoryUtil") '创建ORAOM对象 
7b]0d ]%P Zu0autoRepository.Load "d:\baidu.tsr" '导入对象库文件 51Testing软件测试网:qC'IW&[)A
Set TOCollection = autoRepository.GetAllObjectsByClass("Link") '获取所有链接类的对象集合 
.ZH;`DRG9tV(]nq |0For i=0 To TOCollection.count-1  '遍历所有测试对象 51Testing软件测试网^+M&Jq-R
    Set testobject = TOCollection.item(i) '获取测试对象 51Testing软件测试网TPE o/t!Dm/{+c
    If autoRepository.GetLogicalName(testobject) = "知 道" Then  '判断对象名称为“知道”执行一下操作 
0s,K'qIJ*\&FH]0
        testobject.SetTOproperty "text","图 片"   '更改对象库的TEXT属性为“图 片” 51Testing软件测试网]-F3I,ZF"z
        autoRepository.UpdateObject testobject   '更新对象 
q+E,Yd"G&~0        autoRepository.RenameObject testobject,"图 片"  '重命名对象名称 51Testing软件测试网;gc1}~Z5o(H
        autoRepository.Save   '保存对象库 
N,RWxw2`(u ET0        Exit For  '退出循环 
/u(t#} |q2C+KE4Eb)F${0    End If 
51Testing软件测试网KT#e;K~ d
Next 

Fy2VZw+cO#Im0Set testobject = Nothing 
*~yEwk H1\0Set TOCollection = Nothing 51Testing软件测试网9r P T|,w:p S2`S'i
Set autoRepository = Nothing 51Testing软件测试网 U3?t'q SC}
'释放所有对象 51Testing软件测试网7`5R:?&J @ X2qVL
'*******************************  end  ****************************51Testing软件测试网y/fwNf*D

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

未命名51Testing软件测试网#FqNI&y4iGS

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

bDC&R#z{b!Xu0

 QQ截图未命名

/wJk?%M s+@0

未命名51Testing软件测试网+O RS8w ll

~e*z V8ueo0

AOM总结:51Testing软件测试网2l b w'@JK2qd4]aBn

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

h Q#z*H.S| BW^!I0

TAG:

引用 删除 xinke453   /   2009-11-12 15:07:48
楼主辛苦了
 

评分:0

我来说两句

我的栏目

日历

« 2024-04-26  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 32371
  • 日志数: 49
  • 建立时间: 2009-10-17
  • 更新时间: 2011-10-31

RSS订阅

Open Toolbar