51Testing丛书连载:(五十四)精通QTP——自动化测试技术领航

发表于:2012-2-28 11:07

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:余杰 赵旭斌    来源:51Testing软件测试网

4.1.4  重写Reporter对象

  不知道大家有没有使用过自定义的Reporter,QTP的Reporter应用非常局限,甚至有时感觉设计的不是很合理,其实完全可以写自定义的结果报告,不过本小节不是讲解怎么设计结果报告,而是讲解通过重写QTP中的Reporter对象来完成自定义的结果报告。这样做的优势很明显,其一是让能够熟练使用Reporter对象的读者继续使用他们熟悉的函数,其二是可以充分利用Reporter对象的智能代码提示功能。省去配置自定义保留对象的麻烦:

'重写自定义类 

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,这样才能够重写此函数,在类的最后还有一个初始化类,使用的是.WETFactory这个接口来调用.NET类,这个类中牵涉的知识点还是比较多的,若是不清楚某些基础知识,可到本书前面的章节中进行补习。

  注意:

  如果需要将此类应用到QTP的Resources中,就必须在此函数文件中定义类的实例化函数,这是因为QTP的Rescources不支持直接读取函数文件中的Class类,因此,需要增加一个步骤让QTP可以访问到函数库中的Class:

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的方法的功效。

  ● 资源池加载视图(见图4-9)。

图4-9

  如图4-9所示,当完成了函数库文件后,即可直接在QTP的Recources中加载此函数库文件进行使用。那么,如何来使用此函数库中的类文件呢,具体使用如下:

Dim Reporter 

Set Reporter = GetReporter

  ● 脚本试图代码(见图4-10)。

图4-10

  ● 结果文件(见图4-11)。

图4-11

  总结

  Reporter对象其实还有很多我们不为人知的秘密,有很多值得我们去探索的地方,例如:通过Visual Studoin 8的Debug引擎查到的许多隐藏方法,以及在Reporter载入HTML文件并显示等。

本文选自《51Testing软件测试作品系列》之九——《精通QTP——自动化测试技术领航》。

本站经人民邮电出版社和作者的授权,近期将进行部分章节的独家连载,敬请期待!

版权声明:51Testing软件测试网获人民邮电出版社和作者授权独家连载本书部分章节。

任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。

相关阅读:

查看本书介绍>>

查看本书更多试读章节连载>>

查看软件测试作品系列其他书籍>>

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号