51Testing软件测试论坛

标题: 自定义函数注册(保留对象) [打印本页]

作者: dqf    时间: 2012-3-15 16:13
标题: 自定义函数注册(保留对象)
  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!"
复制代码

作者: dqf    时间: 2012-3-21 08:45
待解决
作者: 正在更新    时间: 2012-3-21 09:37
需要用createobject 创建你注册的COM对象的实例
作者: 正在更新    时间: 2012-3-21 09:41
例如 set MyObject=createobject("你注册的COM组件的名称")

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

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




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2