对于 QTP 的 Reporter 对象,我们不能通过 RegisterUserFunc 的方法,像重写其他测试对象的方法一样去自定义我们自己的 Reporter 对象并注册进去。
但是 Yaron Assa 告诉我们一种实现的办法:
http://www.advancedqtp.com/community/blogs/yaron-assas-blog144/overriding-qtps-native-reporter/
这种方法通过写一个与 Reporter 对象同名的的类来实现:
'Override it with our custom class
Dim Reporter
Set Reporter = New clsReporter
'Define a funnel function to be called from the test actions
Public Function GetReporter
Set GetReporter = Reporter
End Function
'Class definition
'In the example, our class just reporter to a text file
Class clsReporter
Dim oFileReporter
Public Sub ReportEvent(iStatus, sStepName, sDetails)
oFileReporter.AppendAllText "c:/log.txt", iStatus & " : " & sStepName & " - " & sDetails & vbcrlf
End Sub
Private Sub Class_Initialize
Set oFIleReporter = DotNetFactory("System.IO.File")
End Sub
End Class
然后在 Action 中定义 Reporter 并获取对象来使用,这样在脚本中使用的 ReportEvent 方法就是我们自定义的方法,而不是 QTP 的 ReportEvent 了:
Dim Reporter
Set Reporter = GetReporter
Reporter.ReportEvent "Fail","StepName1","StepDetails"
本文介绍了一种在QTP中自定义Reporter对象的方法。通过创建一个名为clsReporter的类,并在测试动作中调用该类的ReportEvent方法,可以替代QTP原生的ReportEvent方法。这种做法允许将测试报告输出到指定的文本文件。
172万+

被折叠的 条评论
为什么被折叠?



