zoukankan      html  css  js  c++  java
  • ReportNG报表显示中文乱码和TestNG显示中文乱码实力解决办法

    最近在进军测试自动化框架学习阶段,但无意间总是会伴随小问题的困扰,比如中文乱码,而导致显示总是不舒服,个人觉得,就一定要解决,似乎有点点强迫症。所以遇到ReportNG报表显示中文乱码和TestNG显示中文乱码,自己苦寻解决办法,终于得到解决。可能这是最基础的问题,但还是想记录下,也希望能让以后的朋友少走弯路,少些烦恼。

    Maven安装和配置

    Maven是一个采用纯Java编写的软件项目管理和综合工具。Maven采用了一种被称之为project object model (POM)概念来管理项目, 所有的项目配置信息都被定义在一个叫做pom.xml的文件中,通过该文件,Maven可以管理项目的整个声明周期,包括编译,构建,测试,发布,报告等等。目前Apache下绝大多数项目都已经采用Maven进行管理, 而Maven本身还支持多种插件,可以方便更灵活的控制项目。

    Maven安装

    Maven下载地址:

    打开http://maven.apache.org/download.cgi,下载apache-maven-3.5.0-bin.zip,将下载的zip包解压在本地硬盘, 如C盘。

    环境变量配置如下:

    MAVEN_HOME: C:apache-maven-3.5.0
    MAVEN: %MAVEN_HOME%in MAVEN_OPTS: -Xms256m -Xmx512m 在path最前面加上: %MAVEN%;

    配置好环境变量后,验证maven是否安装成功,输入mvn -version验证,出现如下所示表示成功:

    Maven配置:

    Maven添加本地仓库,Maven的安装路径中的conf文件夹中配置settings.xml:

    在文中找到localRepository注释行并添加如下:<localRepository>F:maven-dependcies</localRepository>

    备注: F:maven-dependcies为手动建立, 配置好该项后, 以后Maven用到的所有资源文件都会存储到该目录, 相当于本地仓库。 

    Maven配置mirror

    mirror就是镜像, 主要提供一个方便地切换远程仓库地址的途径。Maven的安装路径中的conf文件夹中配置settings.xml在文中找到<mirrors>行并在其中添加如下: 

     

    国内OSChina提供的镜像:
    <mirror>
    <id>CN</id>
    <name>OSChina Central</name>
    <url>http://maven.oschina.net/content/groups/public/</url>
    <mirrorOf>central</mirrorOf>
    </mirror>
    aliyun阿里云提供的镜像:
    <mirror>
    <id>nexus-aliyun</id>
    <mirrorOf>*</mirrorOf>
    <name>Nexus aliyun</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public</url>
    </mirror>

    备注: 配置这两者中的其中一个即可, 如果不配置mirror, 将会使用默认国外的mirror, jar包下载很慢,建议配置阿里云镜像。

    Eclipse中安装Maven插件

    1.打开Eclipse,进入help -- >Install New Software...,Add按钮输入:m2e,http://download.eclipse.org/technology/m2e/releases,然后点击next直到安装完成。 

    2.设置Maven插件所关联的Maven程序 

    选择Eclipse菜单栏的Window-->Preferences-->Maven--Installations菜单项, 点add,选择Maven的具体安装目录 ,如下所示:

    3.设置自定义的本地仓库 

    选择Eclipse菜单栏的Window-->Preferences-->Maven--UserSettings菜单项, 修改为我们自定义仓库位置下的settings.xml文件, 修改好后点击OK按钮。 如下所示:

    新建Maven工程

    打开eclipse, 右击左边空白处--new--Other...在弹出的对话框中, 选择Maven文件夹下的第三个Maven Project, 点击Next,下一个对话框页面选择, 点击Next,下一个对话框中填入groupidArtifactidname 

    建出来的工程如下:

    说了这么多,Maven终于搭好,因为后续工作是建立在Maven的基础上,所以啰嗦了些。

    ReportNG报表显示中文乱码

    要使用ReportNG报表,需要依赖如下三个jar包,velocity-dep-1.4.jar,reportng-1.1.4.jar,guice-4.0.jar,需要在Maven工程下pom.xml文件下配置,配置如下。至于如何得到这些配置信息,就不再啰嗦了,可看这篇随笔,里面介绍很详细:http://www.cnblogs.com/hong-fithing/p/7622215.html

    保存pom.xml文件即可,自动下载。

    回归正题,在testng.xml文件下配置如下信息:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE suite SYSTEM "http://beust.com/testng/testng-1.0.dtd" >
    <suite name="suite1">
        <test name="test1">
            <classes>
                <class name="com.selenium.model_datadriver.baiduSearchTest" />
            </classes>
        </test>
        <listeners>
          <listener class-name="org.uncommons.reportng.HTMLReporter" /> 
          <listener class-name="org.uncommons.reportng.JUnitXMLReporter" />
        </listeners>
    </suite>

    保存,右键运行该testng.xml文件,由于是在该文件中配置的,所以需要运行该文件即可。在工程路径下,查看如下文件夹下信息:

    打开index.html文件,就是刚生成的报表,如果没有配置上述代码,是不会生成html文件夹的。打开index.html文件即可查看报表。

    很无奈的是,用例全通过,但有中文乱码,很是伤心,这样看起来也很是不爽,解决办法是:更改reportng.jar包信息,这样也麻烦,我找到了一个已经修改好了的jar包,下载地址如下:

    http://pan.baidu.com/s/1pLdZdt5,密码:fctu。下载后,替换掉之前的reportng-1.1.4.jar包即可。

    如何找到reportng-1.1.4.jar路径,如下所示即可:

    复制可得到reportng.jar包的存放路径。如:C:Usershongboss.m2 epositoryorguncommons eportng1.1.4 eportng-1.1.4.jar

    替换好后,再次执行testng.xml文件,去查看报表,如下:

    这样是不是好看多了,个人觉得看着就舒服。为何不使用testng自动生成的报表呢,首先还是reportng产生的报表还是有优势些,还可以自己给日志添加css样式,让报表更加漂亮。比如,用例出错,提示信息就很完美。

    在报表中加自定义日志,首先在java文件中导入该包:

    import org.testng.Reporter;

    在想写入日志信息的地方输入:

    Reporter.log("启动谷歌浏览器");

    Reporter.log就表示日志信息。

    刚才说的,还可以添加css样式,如何添加呢?一起来看。

    System.setProperty("org.uncommons.reportng.escape-output", "false");

    在java文件中的方法中添加如上代码,就可以添加样式了,如下:

    Reporter.log("<span style="color:#16A05D">谷歌浏览器驱动路径是:"+path+"</span>");

    去查看报表中的日志信息,如下:

    这样是不是就很好区分信息了,个人觉得还是很方便的。如果不添加org.testng.Reporter包的话,报表中是不会有Log Output信息的。

    TestNG显示中文乱码

    TestNG显示中文乱码的问题很好解决,首先先来看用例执行完后的显示结果:

    这样看起来是真的丑,而且还是很别扭,我是实在受不了。解决办法是在eclipse的根目录下,有个eclipse.ini配置文件,加上该信息即可:-Dfile.encoding=UTF-8。如下所示:

    添加好后,重启eclipse,再次运行代码,再次查看结果,如下:

    个人觉得是美观多了,这样是不是更有动力敲代码呢?

    很弱的问题,困扰了自己大半天,希望能对以后的朋友有所帮助。

  • 相关阅读:
    php文件里直接写上<?xml version="1.0" encoding="utf8"?>出错?
    Cannot modify header information headers already sent by错误解决办法
    转:静态类和单例的区别
    转:Spring TransactionDefinition中事务传播的类型
    转:注解+动态代理例子
    转:UML几种类间关系
    转:AOP 的利器:ASM 3.0 介绍
    转:java内部类
    Android 模拟器安装及使用教程
    转:java读取指定package下的class
  • 原文地址:https://www.cnblogs.com/hong-fithing/p/7684712.html
Copyright © 2011-2022 走看看