自动化测试专家,专注于自动化测试领域的框架开发及国外最新自动化技术,担任过银行、电子商务等项目的自动化测试工作,精通自动化测试工具QTP、Watir等.并对QTP有过深入的研究,有过企业内训和工具培训经验,希望能与各位同行一起沟通,交流,探讨。 zzxxbb112@hotmail.com

【QTP系列讲座 19】 == 重写Reporter对象 ==

上一篇 / 下一篇  2011-10-31 16:51:06 / 个人分类:QTP系列讲座

 Rss订阅IQuickTest关于如何订阅?51Testing软件测试网k'V-_h)\2k

GoogleReader订阅地址: http://feeds.feedburner.com/iquicktest

-k;H%AQOi,V0

作者:zzxxbb112
时间:2009/11/19 版权所有,侵权必究。51Testing软件测试网%G3G ~W!uKjE

出处:http://blog.csdn.net/zzxxbb112

c ci^/|'}AN:W0

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

 

(U"x_K)H2N4pR4KR0

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

aSR#S:z8_P%Q0

'重写自定义类 
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
51Testing软件测试网Z:OUMuH3J9Jb;v

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

wf},Q,J)s1UR;D0

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

`*{Ce&aLe0

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

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

e(S%} rs0

Set Reporter = New clsReporter 
'定义可以被ACTION调用的FUNCTION 
Public Function GetReporter 
    Set GetReporter = Reporter 
End Function51Testing软件测试网sr%Eq.OE,M3e&|

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

Dim Reporter 
Set Reporter = GetReporter

6k^`z S&Vv#R9~0
  • 加载视图

image

2y.CJ^X0
  • 脚本视图代码

image

an3I&I8`0
  • 结果文件

image

DB9N B R)]m2e2|7h0
  • 总结

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

_Yt)JZ!z5M^1`0

TAG: iquicktest QTP qtp Reporter reporter

 

评分:0

我来说两句

我的栏目

日历

« 2023-11-02  
   1234
567891011
12131415161718
19202122232425
2627282930  

数据统计

  • 访问量: 31005
  • 日志数: 49
  • 建立时间: 2009-10-17
  • 更新时间: 2011-10-31

RSS订阅

Open Toolbar