作者:zzxxbb112
时间:2011/11/29 版权所有,侵权必究。
出处:http://blog.csdn.net/zzxxbb112
相信很多有经验的自动化测试人员都知道虚拟对象是QTP工具提供的一个可以识别任意测试对象的一种识别方式,但是此种识别方式的缺点很明显,就是需要通过坐标来映射一个区域为虚拟的测试封装对象,并且它还有个最致命的缺点,就是在使用了虚拟对象的测试脚本移植的过程中需要把虚拟对象库文件也一起拷贝到运行环境中,因此我们往往强烈不推荐大家使用虚拟对象这种方式。而今天这一讲主要就是让大家摆脱这种移植时的问题,直接使用描述性编程的方式来进行,虽然我本人不太喜欢描述性编程,原因相信有经验的朋友也知道,但是一方面是移植原因,另一方面是由于虚拟对象库中的对象属性在QTP中的隐藏的,我们并无法对其进行编辑,因此描述性编程在此时就成为最佳的识别方式,那么说了那么多接下来就来看一个实际例子。(对于虚拟对象的普通使用方式这里就不细说了,网上随处都可以找到)
这里使用本博客来作为实例操作,首先把本博客左边的赵旭斌的头像照片抓取到对象库中,接下来要做的就是把此对象映射成虚拟按钮。
'获取需要映射的对象 Set imageButton = _ Browser("iQuickTest 领先技术研究专栏 -"). _ Page("iQuickTest 领先技术研究专栏 -").Image("1_zzxxbb112") '描述需要映射的对象区域坐标以及宽和高 Set imageVoBtn = description.Create imageVoBtn("x").value = imageButton.GetROProperty("x") imageVoBtn("y").value = imageButton.GetROProperty("y") imageVoBtn("height").value = imageButton.GetROProperty("height") imageVoBtn("width").value = imageButton.GetROProperty("width") '高亮虚拟按钮 Browser("iQuickTest 领先技术研究专栏 -").VirtualButton(imageVoBtn).highlight
从以上代码可以看到我们通过GetROProperty方式动态获取到对象的x,y,height,width四个关键描述属性,并利用描述性编程的方式把此对象描述出来,最后放入虚拟封装对象中,通过highlight方式高亮出来。
执行结果:
可以看到图片被高亮出来了,其实这四个属性可以任意进行定制区域,只要在屏幕范围内,都可以进行高亮。你不妨可以试试。
当然你也可以对此对象进行点击操作:
'点击虚拟按钮 Browser("iQuickTest 领先技术研究专栏 -").VirtualButton(imageVoBtn).Click
那么来分析一下如何才能得知每一种虚拟对象类型的关键描述属性呢,其实很简单,了解我讲座风格的朋友一定知道,没错regedit出场了。
进入到注册表regedit后,HKCU --> Software --> Mercury Interactive --> QuickTest Professional --> micTest --> Test Objects -->
此处可以看到所有的虚拟对象目录,那么我们接下来展开看看,进入到Description项下
VirtualButton的关键属性
可以看到右边一共有5个属性,其中除了vo_all_branch属性之外(笔者也不知道是派什么用的,要问qtp开发人员了),另外四个属性在上一个例子中我们已经使用过了,那么其实这里就是每种虚拟对象的关键属性了。
VirtualList的关键属性
可以看到VirtualList比之前的button多了一个rows,也就是行数,那么我们只需要加入行数即可,注意list方式需要计算好高度。
VirtualTable的关键属性
表格对象需要添加行数rows,列数columns
总结:
如果你的被测应用只有很少量的无法识别对象,那么你不妨可以试试虚拟对象方式,插件扩展毕竟需要花很大的代价,并且需要一定的开发经验,当然如果存在较多的无法识别对象,还是强烈推荐插件扩展开发方式来进行识别。
Rss订阅IQuickTest(关于如何订阅?)
==================================
IQuickTest自动化测试培训开始预定(详情点击)