dqf 发表于 2012-3-15 16:13:42

自定义函数注册(保留对象)

'@Description 指定把日志写入节点下
Public Function EnterNode(ByRef NodeName, ByRef NodeContent)
' 用一个Dictionary对象来存储节点的信息
Set dicMetaDescription=CreateObject("Scripting.Dictionary")
' 设置节点的状态
dicMetaDescription("Status")=MicDone
' 设置节点的名称;如果不是重用的话在此就可以直接写明节点的名称
dicMetaDescription("PlainTextNodeName")=NodeName
' 设置节点的详细描述信息(可以使用HTML格式);如果不是重用的话在此就可以直接写明节点的描述信息
dicMetaDescription("StepHtmlInfo")=NodeContent
' 设置节点的图标
dicMetaDescription("DllIconIndex")=210
dicMetaDescription("DllIconSelIndex")=210 '这两是否有何区别呀?这边的数字好象不影响图标显示吗?
' 节点图标从ContextManager.dll这个DLL文件中读取
dicMetaDescription("DllPATH")="C:\Program Files\HP\QuickTest Professional\bin\ContextManager.dll"
' 使用Reporter对象的LogEvent写入新节点
intContext=Reporter.LogEvent( "User", dicMetaDescription, Reporter.GetContext)
' 调用Reporter对象的SetContext把新定的节点作为父节点
Reporter.SetContext intContext
End Function

'@Description 退出当前日志节点(与EnterNode配对使用)
Public Function ExitNode
' 调用Reporter对象的UnSetContext,返回上一层
Reporter.UnSetContext
End Function
在VB中将以上2个方法生成了DLL,同时也按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,操作
注册成功,在QTP中也能看到这两个方法,但是在运行时失败,提示:需要对象。
调用的语句为MyObject.EnterNode"父节点","Hello"
Reporter.ReportEvent micPass,"Step1","Step1 Pass!"
Reporter.ReportEvent micWarning,"Step2","Step2Pass With Warnning!"
Reporter.ReportEvent micFail,"Step3","Step3Fail!"
MyObject.ExitNode
MyObject.EnterNode"另一个节点","Hi"
Reporter.ReportEvent micPass,"Step4","Step4 Pass!"
Reporter.ReportEvent micPass,"Step5","Step5 Pass!"
MyObject.ExitNode
Reporter.ReportEvent micPass,"Case3","Case3 Pass!"

dqf 发表于 2012-3-21 08:45:18

待解决

正在更新 发表于 2012-3-21 09:37:41

需要用createobject 创建你注册的COM对象的实例

正在更新 发表于 2012-3-21 09:41:06

例如 set MyObject=createobject("你注册的COM组件的名称")

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

createobject类似于其他编程语言的NEW 关键字 需要先在内存中创建对象的实例 才可使用此对象中的资源,
页: [1]
查看完整版本: 自定义函数注册(保留对象)