51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1780|回复: 3
打印 上一主题 下一主题

[原创] 自定义函数注册(保留对象)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2012-3-15 16:13:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. '@Description 指定把日志写入节点下
  2. Public Function EnterNode(ByRef NodeName, ByRef NodeContent)
  3. ' 用一个Dictionary对象来存储节点的信息
  4. Set dicMetaDescription=CreateObject("Scripting.Dictionary")
  5. ' 设置节点的状态
  6. dicMetaDescription("Status")=MicDone
  7. ' 设置节点的名称;如果不是重用的话在此就可以直接写明节点的名称
  8. dicMetaDescription("PlainTextNodeName")=NodeName
  9. ' 设置节点的详细描述信息(可以使用HTML格式);如果不是重用的话在此就可以直接写明节点的描述信息
  10. dicMetaDescription("StepHtmlInfo")=NodeContent
  11. ' 设置节点的图标
  12. dicMetaDescription("DllIconIndex")=210
  13. dicMetaDescription("DllIconSelIndex")=210 '这两是否有何区别呀?这边的数字好象不影响图标显示吗?
  14. ' 节点图标从ContextManager.dll这个DLL文件中读取
  15. dicMetaDescription("DllPATH")="C:\Program Files\HP\QuickTest Professional\bin\ContextManager.dll"
  16. ' 使用Reporter对象的LogEvent写入新节点
  17. intContext=Reporter.LogEvent( "User", dicMetaDescription, Reporter.GetContext)
  18. ' 调用Reporter对象的SetContext把新定的节点作为父节点
  19. Reporter.SetContext intContext
  20. End Function

  21. '@Description 退出当前日志节点(与EnterNode配对使用)
  22. Public Function ExitNode
  23. ' 调用Reporter对象的UnSetContext,返回上一层
  24. Reporter.UnSetContext
  25. End Function
复制代码

在VB中将以上2个方法生成了DLL,同时也按[url=http://www.51testing.com/html/89/n-96989.html;http://www.51testing.com/html/95/n-96995.html]http://www.51testing.com/html/89/n-96989.html;http://www.51testing.com/html/95/n-96995.html[/url],操作
注册成功,在QTP中也能看到这两个方法,但是在运行时失败,提示:需要对象。
调用的语句为
  1. MyObject.EnterNode"父节点","Hello"
  2. Reporter.ReportEvent micPass,"Step1","Step1 Pass!"
  3. Reporter.ReportEvent micWarning,"Step2","Step2Pass With Warnning!"
  4. Reporter.ReportEvent micFail,"Step3","Step3Fail!"
  5. MyObject.ExitNode
  6. MyObject.EnterNode"另一个节点","Hi"
  7. Reporter.ReportEvent micPass,"Step4","Step4 Pass!"
  8. Reporter.ReportEvent micPass,"Step5","Step5 Pass!"
  9. MyObject.ExitNode
  10. Reporter.ReportEvent micPass,"Case3","Case3 Pass!"
复制代码
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2012-3-21 08:45:18 | 只看该作者
待解决
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2012-3-21 09:37:41 | 只看该作者
需要用createobject 创建你注册的COM对象的实例
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2012-3-21 09:41:06 | 只看该作者
例如 set MyObject=createobject("你注册的COM组件的名称")

然后再 MyObject.COM组件中的方法或属性

createobject类似于其他编程语言的NEW 关键字 需要先在内存中创建对象的实例 才可使用此对象中的资源,
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-10 15:52 , Processed in 0.076871 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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