利用ReportNG生成美观易读的测试报告
从上个章节中,我们可以看到TestNG有其默认的report,尽管其内容较全面,但不易阅读,因此我们想利用ReportNG来替代TestNG默认的report。
ReportNG提供了简单的方式来查看测试结果,并能对结果进行着色,还可以通过修改模板定制化内容,修改CSS来替换默认的输出样式等。
为了使用ReportNG,首先我们要引入reportng-1.1.4.jar和velocity-dep-1.4.jar,或者直接导入有其源代码,进行定制化。
举例说明我们进行的一些定制化的内容:
1. 默认的ReportNG的报告中,是以字母序对执行的方法进行排序的,这不是我们期望的,我们期望是以方法的执行先后顺序来进行排序的,故修改了TestResultComparator类,如下图:
▲图17 TestResultComparator代码片段
2. 希望报告中显示的信息更加详细,且有截图,故定制化了模板文件/本地化文件等,如图:
▲图18 本地化Properties文件
▲图19 报告输出模板文件
3. 在ReportNGUtils中添加截图的相关方法,如下图所示:
▲图20 截图的相关代码片段
4. 在main方法中修改代码,使得testNG使用定制化后的report作为报告输出。
▲图21 修改Main方法
再次运行该测试用例,得到的测试报告如下:
Overview
▲图22 报告的总体预览
Details
▲图23 报告的详细测试结果
截图可以放大/全屏观看,如下图:
结束语
一套成熟的自动化框架是需要在项目实践中持续优化的,只有不断的实践才能发现问题,解决问题,积累经验,逐步完善。希望作者提供的这一实践可以给读者一些借鉴,但这一实践还远远未达到完善的地步,我们愿意和大家一起多思考,多交流,结合自己的项目特性灵活运用,合理改进已达到能真正运用工具解放日常繁琐劳动,提高效率,保证质量的效果。
作者简介
皇甫鹏: IBM CDL高级软件工程师, QA lead,从事自动化测试工具的设计和开发,以及创新工具的开发等。在Developworks和其他期刊上发表过多篇文章。
陈宇:IBM GDC 软件测试工程师,主要从事功能测试,自动化测试
余新龙: IBM GDC高级软件测试工程师,主要从事Web自动化测试。