51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3017|回复: 13
打印 上一主题 下一主题

[原创] QTP--共享仓库

[复制链接]
  • TA的每日心情
    难过
    2015-9-21 13:50
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]测试排长

    跳转到指定楼层
    1#
    发表于 2009-7-27 10:59:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    看了老外一篇文章:

    你曾经遇到下面的问题么?
    1、进程间的通信?
    2、Action之间的信息传递?
    3、在BPT框架中,模块间的信息传递?
    4、机器间的信息传递?
    5、当你的进程没有结束时,如何把信息保存在内存中?
    6、如果以上的问题你还不能回答,那么现在有答案给你。

    知识收件匣感到自豪的是,目前一个最新的解决方案来克服上述问题—知识收件匣的共享仓库

    什么是知识收件匣的共享仓库?
    知识收件匣的共享仓库是一个基于Activex的COM组件,允许你创建逻辑的仓库,存储对象和值。这种信息在没有被覆盖之前一直保存在系统中。简单的QTP代码如下:
    'Create the shared store
    Set oSharedStore = CreateObject ("KnowledgeInbox.SharedStore")

    'Add a new store
    Set oStore = oSharedStore.AddStore("GeneralTest")

    'Create a dictionary object in shared store
    Set oDict = oSharedStore.CreateObject("Scripting.Dictionary")

    'Add the dictionary object to the store
    oStore.AddItem "TestDictionary" , oDict

    'Update some values in dictionary
    oDict("CA") = "California"

    'Destroy the object
    Set oDict = Nothing

    'Instruct shared to store to remain in memory
    oSharedStore.PersistInMemory = True

    'Destroy the shared store
    Set oSharedStore = Nothing

    关闭QTP并打开一个VBScript的记事本
    'Create the shared object store
    Set oSharedStore = CreateObject ("KnowledgeInbox.SharedStore")

    'Get the specified store
    Set oStore = oSharedStore.GetStore("GeneralTest")

    'Get the specified object from the store
    Set oDict = oStore.GetItem ("TestDictionary")

    'Will display california
    MsgBox oDict("CA")

    'Now instruct shared store to unload when destroyed
    oSharedStore.PersistInMemory = False

    'Destroy the shared store
    Set oSharedStore = Nothing



    [ 本帖最后由 fei.ge 于 2009-7-27 11:01 编辑 ]

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

  • TA的每日心情
    难过
    2015-9-21 13:50
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]测试排长

    2#
     楼主| 发表于 2009-7-27 11:00:26 | 只看该作者
    遇到一个问题,机器间的信息如何传递?

    [ 本帖最后由 fei.ge 于 2009-7-27 11:07 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
    发表于 2009-7-27 11:21:44 | 只看该作者
    不错,顶一下,老外就喜欢玩概念~~~

    不过对于使用QTP来说,我们一般使用外部文件来定义变量保存信息足以解决绝大多数的信息传递问题了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
    发表于 2009-7-27 11:41:04 | 只看该作者
    大致看了下,实现的思路应该就是用了个第三方托管,和往常的方法相比,之前的就像是自己找个地方埋着,而该方法就是找个银行来存着~~
    该方法在创建对象时会启动个名为KInboxSharedStore.exe的进程,AddItem应该就是把信息交到了KInboxSharedStore.exe统治的内存块中,再通过PersistInMemory属性来判断是否再释放对象时关闭该进程。其它时候或者其它进程需要获取共享信息的时候就去访问KInboxSharedStore.exe进程来获取所需要的信息。若在此期间KInboxSharedStore.exe进程异常或者不存在了,信息也就丢失咯。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
    发表于 2009-7-27 11:43:10 | 只看该作者
    还没想到什么情况下需要用到这种需求。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2009-7-27 12:15:55 | 只看该作者
    用文件保存其实也一样了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2015-9-21 13:50
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]测试排长

    7#
     楼主| 发表于 2009-7-27 13:54:21 | 只看该作者
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2009-7-28 00:00:31 | 只看该作者
    哦,呵呵,强烈支持,国外的对于这些理念感觉比我们高很多
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2009-7-28 08:57:55 | 只看该作者

    来问几个问题:

    1.一般来说直接一个txt转存就可以了,其实理论上没有必要安装第三方控件的;
    2.LZ有没有验证过关闭QTP后进程是否存在?会不会有内存泄露的情况?(猜的)

    至于主机间的信息传递,LZ可以netstat -na看看,或者下个Fport看看这个进程是否有监听端口
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
    发表于 2009-8-14 16:36:32 | 只看该作者
    顶一下
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
    发表于 2009-8-18 09:30:39 | 只看该作者
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2009-8-18 09:43:00 | 只看该作者
    有机会的试试 不错
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
    发表于 2009-8-18 10:05:39 | 只看该作者
    不错 支持一下
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
    发表于 2010-10-9 11:16:23 | 只看该作者
    不错,学习了
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-9 03:46 , Processed in 0.081606 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表