zoukankan      html  css  js  c++  java
  • 优化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内容,因此报告看起来好看又人性化

     

  • 相关阅读:
    SciTE 快捷键
    MySQL数据库性能优化
    常用的正则表达式全面总结
    PHP中的Memcache的应用
    经典数学题:态度决定一切
    PHP Socket基础
    由浅入深探究mysql索引结构原理、性能分析与优化
    深入理解HTTP协议
    PHP会话控制之Session介绍原理
    PHP会话控制之Cookie使用例子
  • 原文地址:https://www.cnblogs.com/jwentest/p/7073223.html
Copyright © 2011-2022 走看看