技术开发 频道

基于Selenium2和TestNG的自动化测试

  利用ReportNG生成美观易读的测试报告

  从上个章节中,我们可以看到TestNG有其默认的report,尽管其内容较全面,但不易阅读,因此我们想利用ReportNG来替代TestNG默认的report。

  ReportNG提供了简单的方式来查看测试结果,并能对结果进行着色,还可以通过修改模板定制化内容,修改CSS来替换默认的输出样式等。

  为了使用ReportNG,首先我们要引入reportng-1.1.4.jar和velocity-dep-1.4.jar,或者直接导入有其源代码,进行定制化。

  举例说明我们进行的一些定制化的内容:

  1. 默认的ReportNG的报告中,是以字母序对执行的方法进行排序的,这不是我们期望的,我们期望是以方法的执行先后顺序来进行排序的,故修改了TestResultComparator类,如下图:

基于Selenium2和TestNG的自动化测试
▲图17 TestResultComparator代码片段

  2. 希望报告中显示的信息更加详细,且有截图,故定制化了模板文件/本地化文件等,如图:

基于Selenium2和TestNG的自动化测试
▲图18 本地化Properties文件

基于Selenium2和TestNG的自动化测试
▲图19 报告输出模板文件

  3. 在ReportNGUtils中添加截图的相关方法,如下图所示:

基于Selenium2和TestNG的自动化测试
▲图20 截图的相关代码片段

  4. 在main方法中修改代码,使得testNG使用定制化后的report作为报告输出。

基于Selenium2和TestNG的自动化测试
▲图21 修改Main方法

  再次运行该测试用例,得到的测试报告如下:

  Overview

基于Selenium2和TestNG的自动化测试
▲图22 报告的总体预览

  Details

基于Selenium2和TestNG的自动化测试
▲图23 报告的详细测试结果

  截图可以放大/全屏观看,如下图:

基于Selenium2和TestNG的自动化测试
▲图24 报告中的截屏点击后的效果

  结束语

  一套成熟的自动化框架是需要在项目实践中持续优化的,只有不断的实践才能发现问题,解决问题,积累经验,逐步完善。希望作者提供的这一实践可以给读者一些借鉴,但这一实践还远远未达到完善的地步,我们愿意和大家一起多思考,多交流,结合自己的项目特性灵活运用,合理改进已达到能真正运用工具解放日常繁琐劳动,提高效率,保证质量的效果。

  作者简介

  皇甫鹏: IBM CDL高级软件工程师, QA lead,从事自动化测试工具的设计和开发,以及创新工具的开发等。在Developworks和其他期刊上发表过多篇文章。

  陈宇:IBM GDC 软件测试工程师,主要从事功能测试,自动化测试

  余新龙: IBM GDC高级软件测试工程师,主要从事Web自动化测试。

47
相关文章