【软件测试自动化-QTP系列讲座 19】 == 重写Reporter对象 ==

不知道大家有没有使用我们自定义的REPORTER,QTP的reporter非常的局限,甚至有时感觉设计的不是很合理,其实我们完全可以通过写自定义的结果报告出来,网上其实也有很多,不过我们今天讲座主题不是怎么设计结果报告,而是通过重写QTP中的REPORTER对象来完成自定义的结果报告。这样做的优势其实很明显,其一是能够让能够熟练使用REPORTER对象的朋友继续使用他们熟悉的函数,其二是可以充分REPORTER对象的智能代码提示功能。省去配置自定义保留对象的麻烦.

不清楚保留对象的朋友可以去这里 :
【软件测试自动化-QTP系列讲座 16】 == 揭开QTP的神秘面纱 (三)保留对象篇 ==
http://blog.csdn.net/zzxxbb112/archive/2009/10/26/4730948.aspx

'重写自定义类
Dim Reporter
Set Reporter = New clsReporter
'定义可以被ACTION调用的FUNCTION
Public Function GetReporter
Set GetReporter = Reporter
End Function
'类定义
Class clsReporter
Dim oFileReporter
Public Sub ReportEvent(iStatus, sStepName, sDetails)
oFileReporter.AppendAllText "d:\hello.txt", sStepName & " - " & sDetails & " - " &Now & vbCrLf
End Sub
Private Sub Class_Initialize

Set oFIleReporter = DotNetFactory("System.IO.File")
End Sub
End Class

我分别介绍一下这段脚本:

首先介绍一下clsReporter这个类,它主要实现的是新建一个TXT文件,然后在里边写入内容,里边有一个函数名字为ReportEvent,注意这个函数名是不能改的,因为QTP中REPORTER有一个方法也叫ReportEvent,这样才能能够重写此函数,在类的最后还有一个初始化类,使用的DOTNETFACTORY这个接口来调用.NET类,这个类中牵涉的知识点还是比较多的,如果看不懂我说的这些,说明你对这些知识点还不够清楚,建议可以先去以下两篇之前出的讲座再来回头看此片文章。

【软件测试自动化-QTP系列讲座 6】 == 利用DotNetFactory调用.NET类库 ==
http://blog.csdn.net/zzxxbb112/archive/2009/09/14/4552095.aspx

【软件测试自动化-VBScript基础讲座 3】== 类的组成 ==
http://blog.csdn.net/zzxxbb112/archive/2009/11/13/4805618.aspx

Set Reporter = New clsReporter
'定义可以被ACTION调用的FUNCTION
Public Function GetReporter
Set GetReporter = Reporter
End Function

创建CLSREPORTER这个类并返回Reporter对象,并通过GETREPORTER这个函数来把Reporter对象进行返回。接着我们就可以把以上所有的代码都保存为一个VBS文件,并通过QTP的associated function libraries把此文件加载进来,这样我们就可以直接以下代码来直接调用此函数来达到重写QTP中reporter的方法

Dim Reporter
Set Reporter = GetReporter

  • 加载视图

image

  • 脚本视图代码

image

  • 结果文件

image

  • 总结

Reporter对象其实还有很多我们不为人知的秘密,很多值得我们去探索的地方,例如,通过VS8后DEBUG引擎查到的许多隐藏方法,以及在REPORTER载入HTML文件并显示等等。这些我会在后续的讲座中进行讲解。

<noscript><a href="http://www.linezing.com"><img src="http://img.tongji.linezing.com/1324353/tongji.gif" alt=""></a></noscript>

你可能感兴趣的:(.net,软件测试,脚本,Blog,VBScript)