ReportNG 手把手教你弄测试报告
2015-05-27 09:03
106 查看
ReportNG 是一个配合TestNG运行case后自动帮你在test-output文件内生成一个相对较为美观的测试报告!
ReportNG 里面Log 是不支持中文的,我改过ReportNG.jar源码,具体方法看最下面,也可以找我直接要jar!
话不多说直接上
环境准备:
1,你需要这些架包
解释:有人会问现在ReportNG版本不是1.1.4吗?为什么我这里是1.1.5呢,这里是因为我改过这里面的源码,(为什么要改源码?后面告诉你)
2,先写一个简单的case,比如打开百度,下面这个代码看上去不难吧!这是第二步前提是你能运行它
3,配置testNG.xml,这个文件是testNG的配置文件,
4,然后运行testNG.XML ,再看test-output文件夹 里面的 html文件下面的index.html
报错信息:
你自己System.out的东西都可以写到这里:
如果你的报告是乱码,那么你不要急,方法在下面:
在使用ReportNG替换TestNG自带报告时如果报告中含中文,则会乱码,很是不爽,所以把ReportNG的源码下载下来调试。
原来以为是velocity模板的问题,结果对比发现模板没有任何问题,再通过跟踪生成报告过程的代码发现是在将模板文件替换后输出到页面时未转码导致的,修改方法如下:
修改AbstractReporter中的generateFile这个方法中的代码如下:
现在是这样的:
修改成下面这样,然后编译好新的jar文件
这样生成的报告就不会乱码了。
ReportNG 里面Log 是不支持中文的,我改过ReportNG.jar源码,具体方法看最下面,也可以找我直接要jar!
话不多说直接上
环境准备:
1,你需要这些架包
解释:有人会问现在ReportNG版本不是1.1.4吗?为什么我这里是1.1.5呢,这里是因为我改过这里面的源码,(为什么要改源码?后面告诉你)
2,先写一个简单的case,比如打开百度,下面这个代码看上去不难吧!这是第二步前提是你能运行它
package Test; import org.junit.After; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.firefox.FirefoxProfile; import org.testng.annotations.Test; public class case1 { WebDriver driver; @Test public void Open() throws InterruptedException { System.setProperty("webdriver.friefox.bin","C:\\Program Files\\Mozilla Firefox\\friefox.exe"); FirefoxProfile fp = new FirefoxProfile(); WebDriver driver = new FirefoxDriver(fp); driver.get("http://www.baidu.com"); driver.findElement(By.id("kw")).sendKeys("testerhome"); } @Test public void Open() throws InterruptedException { System.setProperty("webdriver.friefox.bin","C:\\Program Files\\Mozilla Firefox\\friefox.exe"); FirefoxProfile fp = new FirefoxProfile(); WebDriver driver = new FirefoxDriver(fp); driver.get("http://www.baidu.com"); driver.findElement(By.id("kw")).sendKeys("testerhome"); Reporter.log("测试1通过"); } @Test public void Open1() throws InterruptedException { System.setProperty("webdriver.friefox.bin","C:\\Program Files\\Mozilla Firefox\\friefox.exe"); FirefoxProfile fp = new FirefoxProfile(); WebDriver driver = new FirefoxDriver(fp); driver.get("http://www.baidu.com"); driver.findElement(By.id("kw")).sendKeys("testerhome"); Reporter.log("测试2通过"); } @Test public void Open2() throws InterruptedException { System.setProperty("webdriver.friefox.bin","C:\\Program Files\\Mozilla Firefox\\friefox.exe"); FirefoxProfile fp = new FirefoxProfile(); WebDriver driver = new FirefoxDriver(fp); driver.get("http://www.baidu.com"); driver.findElement(By.id("k1w")).sendKeys("testerhome"); Reporter.log("测试3通过"); } @After public void quit() throws InterruptedException { driver.quit(); } }
3,配置testNG.xml,这个文件是testNG的配置文件,
<?xml version="1.0" encoding="UTF-8"?> <suite name="test" parallel="true"> <test name="test" preserver-order="true"> <classes> //你也可以多个 <class name="包名.case名字"/> <class name="包名.case名字"/> <class name="包名.case名字"/> </classes> <listeners> //这是你需要加的东西 <listener class-name="org.uncommons.reportng.HTMLReporter" /> <listener class-name="org.uncommons.reportng.JUnitXMLReporter" /> </listeners> </test> <!-- Test --> </suite> <!-- Suite -->
4,然后运行testNG.XML ,再看test-output文件夹 里面的 html文件下面的index.html
报错信息:
你自己System.out的东西都可以写到这里:
如果你的报告是乱码,那么你不要急,方法在下面:
在使用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(); } }
这样生成的报告就不会乱码了。
相关文章推荐
- ReportNG 手把手教你弄测试报告
- ReportNG 手把手教你弄测试报告
- ReportNG测试报告模板定制
- 关于reportng生成的测试报告不按测试执行顺序的解决办法
- Reportng测试报告添加失败用例截图
- ReportNg测试报告的定制修改(二)
- ReportNg测试报告的定制修改
- ReportNG测试报告的定制修改
- Reportng 的测试报告在 Jenkins 中显示不全
- ReportNg测试报告的定制修改(三)
- 利用ReportNG生成美观易读的测试报告
- selenuim+testng集成ant和reportNG自动执行和发送测试报告
- testng+maven+java+idea 接口测试入门二:使用reportng优化报告格式
- 使用ReportNg生成测试报告(Maven+Appium+TestNg+ReportNg)
- testng生成报告ReportNG美化测试报告
- reportNG无法产生html的测试报告
- reportng之测试报告升级美化
- Jenkins显示reportng测试报告
- ReportNg 测试报告的定制修改【转】
- 软件测试--报告软件缺陷的基本原则