作者:zzxxbb112
时间:2011/12/12 版权所有,侵权必究。
出处:http://blog.csdn.net/zzxxbb112
在上一次讲座的内容中,我们已经简单介绍了一些对象映射的基础知识,但是qtp本身提供的对象映射其实存在着移植的问题。比如当我们把脚本移植到另外一台机器时此对象就会失效。因为对象映射是跟着配置走的,而这些配置并不会跟着脚本走。这就值得我们去好好思考一下该如何把这些配置一起绑定在脚本上。
针对以上的问题笔者在这里提供大家两种解决方案:
方案1: 使用配置到处方案(Generate Script方式)
优点:方便快捷,导出脚本即可
缺点:只能应用与QTP标准的对象映射
步骤:打开Tools --> Object Identification 在user-defined映射完后点击
推荐保存到主脚本文件夹的配置文件夹中,文件为vbs文件,最好用于加入到环境预配置文件中运行它即可。
这样在更换机器的时候,只需要在其他机器上执行下此文件即可。
方案2: 更改注册表的ClassMap项下的键值 (参考QuickTest Unplugged中高级章节)
优点:可用于QTP非标准映射方式,比如.Net对象映射
缺点:需要对注册表操作脚本比较熟悉
步骤:进入到HKCU --> Software --> Mercury Interactive --> QuickTest Professional --> MicTest --> Packages
可以看到此图中显示出了QTP所有已安装插件的包文件。我们可以展开StdPackage进入到ClassMap
如图所示我们可以看到ClassMap下有很多类和对象
注意看右边,有一个TXEdit是不是很熟悉,没错,它就是之前我们使用QTP进行映射的对象
当使用QTP在Object Identification下的User-defined功能进行映射后,注册表自动会生成这样一行键值
那么这就意味着我们其实可以直接通过修改注册表自动加入自定义对象。
这里笔者建议大家可以直接使用Wsh对象的RegWrite方式封装成vbs脚本来进行映射。
.Net对象无法识别?直接加入注册表即可映射自定义对象
这张图我就不解释了,相应聪明的你一看就明白了。
注意:
此方案必须在启动QTP之前进行,否则无效。
总结:
这两次讲座主要介绍了使用对象映射的方式来解决对象无法识别的情况,以及一些需要注意的事项,当然这只是冰山一角,对于对象无法识别的情况还有千千万万种,针对每种不同的情况有着不同的解决方案,比如访问控件自身接口、通过DotNetFactory访问自定义对象,通过写自定义Dll动态链接库、通过插件扩展开发来解决等等等等,这里我就不一一举例了。
如有任何问题请去IquickTest Q&A问题库进行提问
Rss订阅IQuickTest(关于如何订阅?)
==================================
IQuickTest自动化测试培训开始预定(详情点击)