以下内容引自: https://www.cnblogs.com/jwentest/p/7073223.html

优化testng报告

 

背景

搞过testng的同学都知道,testng自带的报告非常丑,而且有些字段的展示很不人性化,所以需要优化下报告

解决方案

尝试过一下开源的jar包,如ReportNG,奈何和目前使用的allure框架冲突,只能选择其他方法,google后发现可以重写testNG的生成报告的接口来实现自定义的报告,美化方面想到了直接套用bootstrap的框架

参考:https://stackoverflow.com/questions/19564862/customizing-summary-section-of-testng-emailable-report

http://www.bootcss.com/

首先尝试获取我们需要的关键信息,可以获取到我们想要的用例数量,通过个数,失败个数,跳过个数,类名,方法名,异常报错,时间

for (ISuite suite : suites) {
            Map<String, ISuiteResult> tests = suite.getResults();
            for (ISuiteResult r : tests.values()) {
                ITestContext overview = r.getTestContext();
                System.err.println("suite: " + overview.getName());
                System.err.println("Stard Time: "+overview.getStartDate());
                System.err.println("End Time: "+overview.getEndDate());
 
                System.err.println("all methods num : "+overview.getAllTestMethods().length);
                 
                //passed
                System.err.println("passed: " + overview.getPassedTests().size());
                Set<ITestResult> passedSet = overview.getPassedTests().getAllResults();
                for(ITestResult p : passedSet){
                    System.err.println("class: " +p.getTestClass().getName() + " | method: "+p.getName());
                }
 
                //failed
                System.err.println("failed: " + overview.getFailedTests().size());
                Set<ITestResult> failedSet = overview.getFailedTests().getAllResults();
                for(ITestResult f : failedSet){
                    System.err.println("class: " +f.getTestClass().getName()+ " | method: "+f.getName() + " | error: "+ f.getThrowable());
                }
                 
                //skipped
                System.err.println("skipped: " + overview.getSkippedTests().size());
                Set<ITestResult> skippedSet = overview.getSkippedTests().getAllResults();
                for(ITestResult s : skippedSet){
                    System.err.println("---- " +s.getName() );
                    System.err.println(s.getThrowable());
                }
                System.err.println("==================================");
            }
             
        }

然后将获取到的数据写到一个html文件中,css样式采用放在html中, 类似下图

生成的html文件中包含了我们期望的数据,和bootstrap的css内容,因此报告看起来好看又人性化

虽千万人,吾往矣!

优化TestNG测试报告的更多相关文章

  1. 《手把手教你》系列基础篇(八十三)-java+ selenium自动化测试-框架设计基础-TestNG测试报告-下篇(详解教程)

    1.简介 其实前边好像简单的提到过测试报告,宏哥觉得这部分比较重要,就着重讲解和介绍一下.报告是任何测试执行中最重要的部分,因为它可以帮助用户了解测试执行的结果.失败点和失败原因.另一方面,日志记录对 ...

  2. Selenium+Java的TestNG测试报告优化

    本博主很懒,但学习很勤快,一般能从博客园直接转载的东西,本博主绝不动手写,无奈Selenium+java生成的测试报告在百度上搜索..反正我是没有看到.后来才知道TestNG它可以自动生成测试报告,但 ...

  3. java TestNG测试报告美化

    测试报告 执行完测试用例之后,会在项目的test-output(默认目录)下生成测试报告 打开index.html文件,测试结果摘要,包括:套件名.测试用例成功数.测试用例失败数.测试用例忽略数和te ...

  4. 优化testng报告

    背景 搞过testng的同学都知道,testng自带的报告非常丑,而且有些字段的展示很不人性化,所以需要优化下报告 解决方案 尝试过一下开源的jar包,如ReportNG,奈何和目前使用的allure ...

  5. Java接口自动化测试之TestNG测试报告ExtentReports的应用(三)

    pom.xml导入包 <?xml version="1.0" encoding="UTF-8"?> <project xmlns=" ...

  6. TestNG测试报告美化

    因TestNG自带的测试报告不太美观,可以使用testng-xslt进行美化 1.下载testng-xslt包 2.把/src/main/resources/TestNG-results.xsl放到你 ...

  7. TestNG系列(五)TestNG测试报告

    以TestNG执行测试方法后会生成test-output测试结果集,其中index.html是测试结果的展示.TestNG的测试报告可以通过IReporter监听自定义,也可以通过第三方工具(Repo ...

  8. Testng测试报告

    执行完测试用例之后,会在项目的test-output(默认目录)下生成测试报告

  9. TestNG测试报告美化buid.xml配置

    <?xml version="1.0" encoding="UTF-8"?> <project name="myproject&qu ...

随机推荐

  1. linux下64位汇编的系统调用(4)

    经过上一篇的铺垫貌似可以很轻松的用汇编写出mmap的代码来,可仔细一看,还是有不少问题需要解决: 1.系统调用mmap如果出错并不直接返回MAP_FAILED(-1),而是一个"类似&quo ...

  2. obj-c编程09:块的语法

    在obj-c中,有一种和C截然不同的东西--块.块可以在外边定义,也可以在函数或方法内部定义,可以被赋值给一个变量,然后用该变量调用.默认情况下块对外部变量的访问只能读不能写,除非用__block显示 ...

  3. rails中migration数据库后测试不通过的问题

    rails项目中由于后期需求变化,需要在products数据库中增加一个字段来满足多国家商品的分类: rails g migration add_locale_to_products locale:s ...

  4. Pascal's Triangle(杨辉三角)

    Given numRows, generate the first numRows of Pascal's triangle. For example, given numRows = 5,Retur ...

  5. java并发包小结(一)

    java.util.concurrent 包含许多线程安全.高性能的并发构建块.换句话讲,创建 java.util.concurrent 的目的就是要实现 Collection 框架对数据结构所执行的 ...

  6. Android之Drawable

    Android 中图片和常见的颜色都可以是一个Drawable. Drawable可以方便我们做出一些特殊的UI效果,这一点在UI相关的开发工作中尤其重要.其主要优点有: 使用简单,比自定义View成 ...

  7. JavaScript中对象数组 根据某个属性值进行排序

    将下列对象数组,通过工资属性,由高到低排序 var BaiduUsers = [], WechatUsers = []; var User = function(id, name, phone, ge ...

  8. Python小游戏之 - 飞机大战美女 !

    用Python写的"飞机大战美女"小游戏 源代码如下: # coding=utf-8 import os import random import pygame # 用一个常量来存 ...

  9. Django Push 的一些资料

    先来中文的: 主要讲Orbited: http://sunsetsunrising.com/2009/django_comet.html#gsc.tab=0 再来英文的: http://www.rkb ...

  10. lvs与nginx区别

    lvs和nginx都可以用作多机负载方案,他们各有优缺点,在生产环境中需要好好分析实际情况并加以利用. 一.lvs的优势: 1.抗负载能力强,因为lvs工作方式的逻辑是非常简单的,而且工作再网络层第4 ...