QTP中虚拟对象设置

上一篇 / 下一篇  2007-01-24 15:01:57 / 个人分类:QTP

M:z/I4b c3O0     当我们在录制脚本中,有时会遇到某个对象回放时不能识别.那么就可以考虑是不是可以做个虚拟对象来代替它.您可以将这些对象定义为虚拟对象,并将它们映射到标准类,例如按钮或复选框。QuickTest 在运行会话过程中模拟虚拟对象上的用户操作。在测试结果中,虚拟对象显示时类似标准类对象。51Testing软件测试网 J(y!E0VT'L+du

QD4n5HL0   下面我们还是通过一个例子来具体操作一下.这次选用LoadRuner自带的b/s架构的web例子,来录制脚本.(注:运行这个例子,同时把web server先给开起来.).这次只录制一个点击sign up(注册)的步骤.51Testing软件测试网7iQ|Nc;i p
录出脚本如下:

:| gHi F#VOaS0

*jg \#r/Xx6~0S0Browser("Mercury Tours").Page("Mercury Tours").Frame("navbar").Image("signup").Click 45,1251Testing软件测试网^}S0Q$K!mW2b

A.ZV\Ld%hj0

.t am'zPz~Nhg:D9R051Testing软件测试网 P]#Yo^J.Nmg

QTP把这个button对象识别成了Image(图片)对象,导致最后回放的时候,QTP不能完成Click操作,弹出报错信息.对于这个对象,我马上想到了做个虚拟的button对象来代替它.51Testing软件测试网)q IO u9U l/tn%v

+]P\z0aq0下面是整个虚拟对象的制作过程:

lKIP0{5Mt0

/q;vgOjMu01.选择“工具”>“虚拟对象”>“新建虚拟对象”。或者,也可以在虚拟对象管理器中,单击“新建”。将打开虚拟对象向导。单击“下一步”。51Testing软件测试网~$MLQq%`-ki

a#kP\6A051Testing软件测试网m;W2f~ ^

2.选择要将您的虚拟对象映射到的标准类(这里有六种对象类供你选择,分别是object,button,table,list,check box,radio button).这里我们要映射一个button对象,所以选择button.单击"下一步"
%U+g!A&|;C6]-B_2h051Testing软件测试网fMI6_["E d5n

51Testing软件测试网n{6n TxP*j

3.单击“标记对象”。选择你要做虚拟对象的区域,拖动鼠标.尽量能覆盖整个你想替代的对象.
Z Q Y? H^i0

r"o&{ v!LB4L+ua0

(b/d0Jl m-?#f:~04.在“标识对象使用”框中,选择您希望 QTP 标识和映射虚拟对象的方式。
P:h~3s ["H0

|b7|#e1f#ylX0

!Gb'@bzX O,X0如果您想要 QuickTest 标识所有出现的虚拟对象,请选择“Parent only”。51Testing软件测试网S;W1{[~yi3b

5?R+x.q$lH.jci0如果想要 QuickTest 仅标识一次出现的虚拟对象,请选择“Entire parent hierarchy"。51Testing软件测试网!{h|-a3ynUl

a;i,ac5O$iMhW0这里我们选择默认的“Parent only”。51Testing软件测试网U1Wk:Gs:V$V*z+j

q.Mj3SfK?05.指定虚拟对象的名称和集合。从集合列表中选择,或通过在“集合名”框中输入新名称来新建集合
e4T W|F+K8NBv051Testing软件测试网z+Hp2Rk8U

51Testing软件测试网T](S,j$M6j9BE

点击完成,整个虚拟对象就做好了.

0p0dVb'rz$x051Testing软件测试网HkjOq b

虚拟对象做好后,保存在虚拟对象管理器中.我们可以通过虚拟对象管理器来删除或禁用虚拟对象定义.

'tq+P(fm}0

lqTaZA Zz0选择“工具”>“虚拟对象”>“虚拟对象管理器”。将打开虚拟对象管理器。
dz(IK8NU051Testing软件测试网1esT ^%u?

*^u['f.~9} pk4oj0注意:如果希望 QuickTest 在录制时识别虚拟对象,请确保清除“选项”对话框的“常规”选项卡中的“录制时禁止识别虚拟对象”复选框。51Testing软件测试网$o HxoD

2b+J+b)U^z0接下来我们再来录制一遍对sign up的操作,录制代码如下:51Testing软件测试网/SP|/Tw

g*l Wa.@iR"Hq0Browser("Mercury Tours").Page("Mercury Tours").Frame("navbar").VirtualButton("button").Click51Testing软件测试网9p8{^%Mb8uiN(} JP

51Testing软件测试网jE1D,bs$|0B~:z

在录制过程中值得注意的是,一定要点击到我们做好虚拟对象的范围内,这样QTP才能识别到这个虚拟对象.这里我们的虚拟对象识别成功.再次回放,QTP顺利的执行了脚本.

s mgCKe!h0

:se p%nD;o`O M0还有两点要注意的是:

!X2aD r6O1}051Testing软件测试网.Q/F0S,@'h5k

1.虚拟对象管理器中显示的虚拟对象集合存储在您的计算机中,而不是随包含虚拟对象步骤的测试或组件存储。这意味着如果您在测试或组件步骤中使用虚拟对象,则仅当在包含正确的虚拟对象定义的计算机中运行时,该对象在运行会话过程中才能被识别。要将您的虚拟对象集合定义复制到另一个计算机,请将您的 <QuickTest 安装文件夹>\dat\VoTemplate 文件夹的内容(或该文件夹中的单个.vot集合文件)复制到目标计算机上的相同文件夹中。51Testing软件测试网{@x.~'H

E9n MoEC02.仅当录制和运行测试或组件时,才能使用虚拟对象。您不能在虚拟对象上插入任何类型的检查点,也不能使用“对象探测器”来查看其属性。

ntIXO3A*Xp,m051Testing软件测试网Qnu O2xuV'GI M

接下来你可以继续完成整个sign up过程,还有多个类似的对象需要做虚拟对象.你也可以试一下?

S&y @ bLQ;@051Testing软件测试网KtgW]I

 

1~b/g/N%G0sA4lK0

TAG: QTP

liuxueyi的个人空间 引用 删除 liuxueyi   /   2014-08-12 12:58:33
5
auberra的个人空间 引用 删除 auberra   /   2008-08-07 15:36:10
文本框怎么映射呀
heqingdan的个人空间 引用 删除 heqingdan   /   2007-12-06 11:36:17
你真是个好家伙!!
侧视浮生 引用 删除 photon   /   2007-09-09 21:51:09
很棒
xiaonan的个人空间 引用 删除 xiaonan   /   2007-04-06 14:00:51
比如例子中所描述的一样,我们在实际测试中,可能会遇到某些对象不能很好的识别,那么我们就可以考虑是不是可以做个虚拟对象来映射到QTP能识别的对象类,以便QTP能正常完成整个测试活动.但是因为是虚拟出来的对象,所以我们并不能在这个对象上做更多的操作.比如加检查点等.只能完成一般的操作.
牧野淇&^*%$#@ 引用 删除 xqq1999   /   2007-04-06 13:27:44
xiaonan,好!
虚拟对象不能加检查点,我好像对虚拟对象的作用还是不大了解,只是单纯的明白这个功能以及你在文中提到的用法,可不可以给我解释一下它的用途和在什么情况下要用到虚拟对象呢,多谢啦!——你的崇拜者:)
gp_jl的个人空间 引用 删除 gp_jl   /   2007-01-31 23:30:27
明白,呵呵
谢谢
xiaonan的个人空间 引用 删除 xiaonan   /   2007-01-31 09:02:33
可能是第4步,我和你映射的对象不同,我直接选了个image上面一层的父对象,而你可能直接选了image对象.呵呵,这个例子不是关键,关键是理解了虚拟对象就好.
gp_jl的个人空间 引用 删除 gp_jl   /   2007-01-31 00:43:07
按照上面的步骤,我对WR自带的b/s架构的web例子的 Sign-in 做了类似的虚拟。可是我发现好像和你录制的结果不同,不知道哪里有问题,请指点。
虚拟前:Browser("Welcome: Mercury Tours_2").Page("Sign-on: Mercury Tours").Image("Login").Click 26,9
虚拟后:Browser("Welcome: Mercury Tours_2").Page("Sign-on: Mercury Tours_2").Image("Login").VirtualButton("button").Click    '就是虚拟后 Image("Login") 仍然存在。
不知道是我操作的问题,还是这样也是对的
平静的生活&工作、淡淡的爱。。。 引用 删除 nobody_pan   /   2007-01-29 13:06:30
谢谢,对虚拟对象有了更深入的了解。
 

评分:0

我来说两句

Open Toolbar