象随我动

发表于:2009-11-26 15:27

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

 作者:假装不在    来源:51Testing软件测试博客

  二、各个“积木”的功能与代码实现

  1、ObjectRepositoryUtil。如果你想了解它能做什么,你可以先摸摸看对象库合并工具与对象库管理工具,你可以知道它能够导出,导出对象库,或者使用XML存储,对象复制,对象命名,对象查找,对象复制与粘贴等等。所以,你读起代码来,你会更容易理解它与吸收:

Dim ImageObj, PageObj, RepositoryFrom, RepositoryTo

Set RepositoryFrom = CreateObject("Mercury.ObjectRepositoryUtil")
Set RepositoryTo = CreateObject("Mercury.ObjectRepositoryUtil")
RepositoryFrom.Load "C:\All.tsr"
RepositoryTo.Load "C:\Only.tsr"
Set ImageObj=RepositoryFrom.GetAllObjects.item(3) 'From对象库的Iamge对象
Set PageObj  =RepositoryTo.GetAllObjects.item(1)   'To对象库的Page对象
RepositoryTo.AddObject ImageObj,PageObj,"AA"    '把这个Image粘贴到这个To 对象库Page下面,并命名为AA
RepositoryTo.Save

  2、RepositoriesCollection。这个主要用途就是让脚本在跑的过程中,可以添加使用其它闲置对象库。这样当前的Action就能使用这个对象库中的对象,但是它同时也存在主次之分,就是本地对象库的优先级别是高过这个调进来的对象库。并且有点需要注意的是,本地对象库中,对象AA因为某些问题,QTP在应用程序中找不到,哪么QTP不会“乐意”再去这个调进来对象库中查找是有有匹配AA的对象,直接就抛个绝望的红XX给你。

RepPath = "C:\All.tsr"
RepositoriesCollection.RemoveAll()
RepositoriesCollection.Add(RepPath)

  3、Repository。当前运行Action的对象库,包括了外调对象库与本地对象库。

  三、我们要如何拼这个“积木”让它“动”呢?它们的可行性?

  方案一:

  1、通过ObjectRepositoryUtil导出XML并实现准备好各个对象的XML片段,通过VBS操作来粘贴,并重新导入XML来实现动态添加对象。

  2、RepositoriesCollection 导入刚才修改的对象库。

  方案二:

  1、在QTP9.5中,对象库是有自己的参数,也就是一个对象库有自己一个或者多个Parameters(参数)。可以在对象库管理期中设置。

  2、在这个对象库中,把里面的某个对象参数化,与这个参数挂钩。完成了“独立对象库参数化”的操作。使用代码如下:

RepPath = "C:\All.tsr"
RepositoriesCollection.RemoveAll()
RepositoriesCollection.Add(RepPath)
msgbox browser("百度一下,你就知道").Page("百度一下,你就知道").Link("新 闻").GetROProperty("Text")   ‘新闻
Repository("AA")="贴 吧"
msgbox browser("百度一下,你就知道").Page("百度一下,你就知道").Link("新 闻").GetROProperty("Text")   ‘贴吧

  3、在这个独立的对象库中,建立多个对象,例如WebEdit,Link,Image等等,把关键的设别属性都挂接起来。

  4、区别与方案一,我们需要用2个对象库,一个就是刚才新建出来的“样板”对象库,这另一个,是来存储我们的“成品”对象。而这些成品对象,就是通过我们的场景恢复搭建起来的。(后面详解)

32/3<123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号