揭秘QTP保留对象机制

发表于:2008-8-05 15:41

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:陈能技    来源:51Testing投稿

  在QTP的帮助文档中,介绍了通过Dictionary对象来在Action之间共享数据的方法,就是在注册表中添加一个保留对象(reserved object),例如“GlobalDictionary”,把Dictionary对象作为环境变量来使用,可以在多个Action之间共享数据。文档中仅介绍了如何在注册表中添加这个对象的注册信息,实际上还可以设置更多的注册信息,让添加的保留对象更好用、更强大。
  本文将深入探索QTP的保留对象机制,以及如何利用QTP的保留对象机制来简化测试脚本的编写工作
  一、 什么是保留对象?
  在QTP自动化测试脚本编写过程中,我们通常会使用QTP提供的一些函数或对象,例如帮助文档中列出的Utility中的对象:

Crypt Object
DataTable Object
Description Object
DotNetFactory Object
DTParameter Object
DTSheet Object
Environment Object
Extern Object
LocalParameter Object
MercuryTimers Object (Collection)
MercuryTimer Object

Parameter Object
PathFinder Object
Properties Object (Collection)
QCUtil Object
RandomNumber Object
Recovery Object
Reporter Object
RepositoriesCollection Object
Repository Object
Services Object
Setting Object
TextUtil Object
TSLTest Object
XMLUtil Object

  这些都是QTP的保留对象,或者称之为“内置对象”,它们封装了各种常用的函数,对于简化测试脚本的编写起到很大的作用,例如使用DotNetFactory这个保留对象就可以方便地访问、创建和使用.NET的对象,下面是一个小例子,用于创建.NET的Form窗体对象,显示一段时间后关闭:


Set var_CreateInstance =DotNetFactory.CreateInstance("System.Windows.Forms.Form", "System.Windows.Forms")
var_CreateInstance.Show
wait 2
var_CreateInstance.Close

  二、 注册自定义保留对象
  按照QTP的帮助文档的提示,我们可以通过修改注册表的方式来添加自定义的保留对象。例如,添加Dictionary保留对象的方法如下:
  1、打开注册表,定位到下面注册项:

HKEY_CURRENT_USER\Software\Mercury

Interactive\QuickTest Professional\MicTest\ReservedObjects

  实际上,从该注册项所包含的子项可以看到,QTP的常用保留对象都列在这里了,例如:DataTable、DotNetFactory、Environment等。而我们要做的是把一些自定义的保留对象添加进去。
  2、添加一个名为“GlobalDictionary”的注册项,如图所示:
  

版权声明:51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像。51testing软件测试网欢迎与业内同行进行有益的合作和交流,如果有任何有关内容方面的合作事宜,请联系我们

51/512345>
《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • yume_wang
    2010-8-24 18:56:14

    学到了,但目前还不清除实践环境。先记下了。

  • kakamissyou
    2008-12-14 23:36:37

    不错,学到了。这回我要称你为陈大哥了。的确还是有两下子。

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号