最近在进军测试自动化框架学习阶段,但无意间总是会伴随小问题的困扰,比如中文乱码,而导致显示总是不舒服,个人觉得,就一定要解决,似乎有点点强迫症。所以遇到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%\bin
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,下一个对话框中填入groupid、 Artifactid、 name

建出来的工程如下:

说了这么多,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:\Users\hongboss\.m2\repository\org\uncommons\reportng\1.1.4\reportng-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,再次运行代码,再次查看结果,如下:

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

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

RoportNG报表显示中文乱码和TestNG显示中文乱码实力解决办法的更多相关文章

  1. ReportNG报表显示中文乱码和TestNG显示中文乱码实力解决办法

    最近在进军测试自动化框架学习阶段,但无意间总是会伴随小问题的困扰,比如中文乱码,而导致显示总是不舒服,个人觉得,就一定要解决,似乎有点点强迫症.所以遇到ReportNG报表显示中文乱码和TestNG显 ...

  2. ScrollView嵌套ListView只显示一行之计算的高度不正确的解决办法(转)

    ScrollView嵌套ListView只显示一行之计算的高度不正确的解决办法 分类: android应用开发2013-12-19 09:40 1045人阅读 评论(3) 收藏 举报 AndroidS ...

  3. web报表工具FineReport使用中遇到的常见报错及解决办法(二)

    web报表工具FineReport使用中遇到的常见报错及解决办法(二) 这里写点抛砖引玉,希望大家能把自己整理的问题及解决方法晾出来,Mark一下,利人利己. 出现问题先搜一下文档上有没有,再看看度娘 ...

  4. php数组使用json_encode函数中文被编码成null的原因和解决办法

    大写的囧,提客户处理问题,前端的APP一直在叽叽咂咂,说收到的值是null,弄了半天原来是这个问题,记录下吧 json格式在开发中用的十分广泛.在php中json_encode函数可以直接将数组转成 ...

  5. 关于Eclipse中Jsp页面打不开并且显示Failed to create the part's controls的解决办法

    问题描述:同事从svn上导入的一个项目,jdk都设置好了以后,java.xml.html等文件都能打开,唯独jsp文件打不开,并且显示Failed to create the part's contr ...

  6. win8 无法显示桌面,运行explorer.exe 提示 0xc0000018 异常 解决办法

    win8 无法显示桌面,运行explorer.exe 提示 0xc0000018 错误 解决方法改注册表.这个就是DB03.EXE引起的. cmd打开注册表:regedit找到注册表"HKE ...

  7. Teamviewer显示“未就绪,请检查您的连接”解决办法

    打开TeamViewer一直提示“未就绪,请检查您的连接”,一直会弹出一个框提示检查网路设置什么. 解决办法:修改DNS为114.114.114.114,然后TeamViewer就显示网络正常. 为什 ...

  8. codeblocks显示:不支持的16位应用程序 解决办法

    我是win10 64位系统,写c++运行就会显示不兼容16位应用程序.以前编出来的exe还能用,今天编出的就炸了. 试了用vs编译.vs能用. 试了网上找的各种解决方案, 360修复, 注册表, 重构 ...

  9. xampp搭建开源项目iwebshop后,服务器重启后再启动xampp显示组件都启动ok,但是实际启动失败解决办法

    最近用xampp搭建了开源商城项目iwebshop,刚搭建完没问题,可是周一来因为服务器重启了,我再启动xampp,显示组件都启动ok了,但是用linux命令查看相关组件的进程时,发现实际没启动起来, ...

随机推荐

  1. Beta冲刺前准备

    一.介绍小组新成员,Ta担任的角色. 201421123121 栗海辉 来自Sugar Free 风格:低调中的高调,给你不一样的视觉 擅长的技术:C语言/JAVA 在曾经的团队里面担任主要编程人员, ...

  2. 团队作业4--第一次项目冲刺(Alpha版本)预备工作

    小组说明 我们组是从周一开始对项目进行研究讨论并编程的,因为我们看截止日期是周日,就从周一才开始,起步晚了,是我们认识上的失误,导致我们周一周二的步伐没有协调好,项目进展的不稳定,但是我们在上周末并不 ...

  3. Quartz2.2.x官方教程

    零.Quartz是什么?能干什么? Quartz是一个开源的任务调度框架.基于定时.定期的策略来执行任务是它的核心功能,比如x年x月的每个星期五上午8点到9点,每隔10分钟执行1次.Quartz有3个 ...

  4. 201521123087 《Java程序设计》第3周学习总结

    1.本周学习总结 2. 书面作业 代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; publ ...

  5. 201521123019 《Java程序设计》第11周学习总结

    1. 本章学习总结 2. 书面作业 Q1.互斥访问与同步访问 完成题集4-4(互斥访问)与4-5(同步访问) 1.1除了使用synchronized修饰方法实现互斥同步访问,还有什么办法实现互斥同步访 ...

  6. 多线程:深入Thread.sleep

    一直都说,Threed.sleep是不会释放锁,而wait是释放锁的(对象锁),现理论上来分析一下. 由于CPU分配的每个线程的时间片极为短暂(一般为几十毫秒),所以,CPU通过不停地切换线程执行,这 ...

  7. GSON速学必会

    一. GSON 简介 GSON是一个用Java语言编写的用于处理JSON数据格式的开源应用程序编程接口项目.它将Java对象转换为JSON表示.还可以用于将JSON字符串转换为等效的Java对象. g ...

  8. shell脚本命令,一些你在书上找不到的命令。

    1.!$<!$是一个特殊的环境变量,它代表了上一个命令的最后一个字符串.如:你可能会这样: $mkdir mydir$mv mydir yourdir$cd yourdir 可以改成: $mkd ...

  9. JDBC操作数据库之批处理

    JDBC开发中,操作数据库需要和数据库建立连接,然后将要执行的SQL语句发送到数据库服务器,最后关闭数据库连接,都是按照这样的操做的,如果按照此流程要执行多条SQL语句,那么就要建立多个数据库连接,将 ...

  10. 在有main函数的前提下 eclipse找不到主类

    有时候在测试类的时候eclipse会莫名奇妙的提示找不到主类   接下来分别有几种解决办法 1.在项目上右击> Builder Path -> Configure Build Path - ...