• 优化testng报告


    1、在maven中的pom.xml中添加dependency

    <!-- reportng替代testng报告 -->
        <dependency>
           <groupId>org.uncommons</groupId>
           <artifactId>reportng</artifactId>
           <version>1.1.4</version>
           <scope>test</scope>
           <exclusions>
             <exclusion>
               <groupId>org.testng</groupId>
               <artifactId>testng</artifactId>
             </exclusion>
           </exclusions>
        </dependency>
    
    <dependency>
           <groupId>com.google.inject</groupId>
           <artifactId>guice</artifactId>
           <version>4.0</version>
           <scope>test</scope>
     </dependency>
    

    2、在tesgng.xml中添加listeners标签

    <?xml version="1.0" encoding="UTF-8"?>
    <suite name="自测demo" parallel="false">
        <parameter name="filePath" value="d:\app_testcase.xlsx"/>
        <parameter name="filePath2" value="d:\test01.xlsx"/>
      <test name="接口自动化">
    
        <listeners>
            <listener class-name = "org.uncommons.reportng.HTMLReporter"/>
            <listener class-name = "org.uncommons.reportng.JUnitXMLReporter"/>
        </listeners>
    
        <classes>
          <class name="com.api.run.TestRun"/>
        </classes>
      </test> <!-- Test -->
    </suite> <!-- Suite -->
    

    3、查看测试报告在test-output--->html---->index.html

     




    来源:https://www.jianshu.com/p/e6fba73b2dd2


    后记:

    如果需要在报告出现自己输出的东西

    在case里面使用下面的语句:

    import org.testng.Reporter;


    Reporter.log("测试1通过");

    若中文乱码见下方操作:

    如果你的报告是乱码,那么你不要急,方法在下面:

    在使用ReportNG替换TestNG自带报告时如果报告中含中文,则会乱码,很是不爽,所以把ReportNG的源码下载下来调试。

    原来以为是velocity模板的问题,结果对比发现模板没有任何问题,再通过跟踪生成报告过程的代码发现是在将模板文件替换后输出到页面时未转码导致的,修改方法如下:

    修改AbstractReporter中的generateFile这个方法中的代码如下:
    原来的代码是这样的:

    复制代码
    protected void generateFile(File file,  String templateName,  VelocityContext context) throws Exception{
            Writer writer = new BufferedWriter(new FileWriter(file));
            try
            {
                Velocity.mergeTemplate(classpathPrefix + templateName,
                                       ENCODING,
                                       context,
                                       writer);
                writer.flush();
            }
            finally
            {
                writer.close();
            }
        }
    复制代码

    修改成下面这样,然后编译好新的jar文件

    复制代码
    protected void generateFile(File file,  String templateName,  VelocityContext context) throws Exception{
            //Writer writer = new BufferedWriter(new FileWriter(file)); 
            //encoding to utf-8
            OutputStream out=new FileOutputStream(file);
            Writer writer = new BufferedWriter(new OutputStreamWriter(out,"utf-8"));
            try
            {
                Velocity.mergeTemplate(classpathPrefix + templateName,ENCODING,context,writer);
    
                writer.flush();
            }
            finally
            {
                writer.close();
            }
        }
    复制代码

     这样生成的报告就不会乱码了。

    参考: https://www.cnblogs.com/111testing/p/6980599.html

  • 相关阅读:
    [转]狼的故事8:生存就是坚持
    [转]狼的故事7:单枪匹马的代价
    如何在GridView的Footer内显示总计?
    javascript中如何正确将日期(Date)字符串转换为日期(Date)对象?
    无限级分类(非递归算法/存储过程版/GUID主键)完整数据库示例_(1)表结构
    [转]狼的故事12:王者的风范
    [转]狼的故事2:光线背后的嚎叫
    vs.net2008正式版发布并提供下载(英文版)
    [转]狼的故事11:以牙还牙
    [转]狼的故事3:百分之百的死亡
  • 原文地址:https://www.cnblogs.com/kaibindirver/p/12156499.html
Copyright © 2020-2023  润新知