fei.ge 发表于 2009-7-27 10:59:34

QTP--共享仓库

看了老外一篇文章:

你曾经遇到下面的问题么?
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 编辑 ]

fei.ge 发表于 2009-7-27 11:00:26

遇到一个问题,机器间的信息如何传递?

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

hsjzfling 发表于 2009-7-27 11:21:44

不错,顶一下,老外就喜欢玩概念~~~

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

hsjzfling 发表于 2009-7-27 11:41:04

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

intothestorm 发表于 2009-7-27 11:43:10

还没想到什么情况下需要用到这种需求。

nbkhic 发表于 2009-7-27 12:15:55

用文件保存其实也一样了

fei.ge 发表于 2009-7-27 13:54:21

我跟无息是一起的。
http://knowledgeinbox.com/downloads/general/shared-store/

yuandjing 发表于 2009-7-28 00:00:31

哦,呵呵,强烈支持,国外的对于这些理念感觉比我们高很多

xiaoyaoke 发表于 2009-7-28 08:57:55

来问几个问题:

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

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

sunhope800 发表于 2009-8-14 16:36:32

顶一下

zero0223 发表于 2009-8-18 09:30:39

:D :D :D :D

lijinshui 发表于 2009-8-18 09:43:00

有机会的试试 不错

hugh007 发表于 2009-8-18 10:05:39

不错 支持一下

vikesgao 发表于 2010-10-9 11:16:23

不错,学习了
页: [1]
查看完整版本: QTP--共享仓库