touchinsert 发表于 2013-2-5 09:19:02

【软件测试自动化-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


[*]加载视图
http://p.blog.csdn.net/images/p_blog_csdn_net/zzxxbb112/601846/o_image_thumb_633943076029853750.png

[*]脚本视图代码
http://p.blog.csdn.net/images/p_blog_csdn_net/zzxxbb112/601846/o_image_thumb_1_633943076039697500.png

[*]结果文件
http://p.blog.csdn.net/images/p_blog_csdn_net/zzxxbb112/601846/o_image_thumb_2_633943076045635000.png

[*]总结
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>
页: [1]
查看完整版本: 【软件测试自动化-QTP系列讲座 19】 == 重写Reporter对象 ==