重写QTP的Reporter方法

对于 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方法)