自动化测试报告(ReportNG)手把手教你

ReportNG 是一个配合TestNG运行case后自动帮你在test-output文件内生成一个相对较为美观的测试报告!
ReportNG 里面Log 是不支持中文的,我改过ReportNG.jar源码,具体方法看最下面,也可以找我直接要jar!
话不多说直接上

环境准备:
1,你需要这些架包

解释:有人会问现在ReportNG版本不是1.1.4吗?为什么我这里是1.1.5呢,这里是因为我改过这里面的源码,(为什么要改源码?后面告诉你)

2,先写一个简单的case,比如打开百度,下面这个代码看上去不难吧!这是第二步前提是你能运行它

packageTest;importorg.junit.After;importorg.openqa.selenium.By;importorg.openqa.selenium.WebDriver;importorg.openqa.selenium.firefox.FirefoxDriver;importorg.openqa.selenium.firefox.FirefoxProfile;importorg.testng.annotations.Test;publicclasscase1{WebDriverdriver;@TestpublicvoidOpen()throwsInterruptedException{System.setProperty("webdriver.friefox.bin","C:\\Program Files\\Mozilla Firefox\\friefox.exe");FirefoxProfilefp=newFirefoxProfile();WebDriverdriver=newFirefoxDriver(fp);driver.get("http://www.baidu.com");driver.findElement(By.id("kw")).sendKeys("testerhome");}@TestpublicvoidOpen()throwsInterruptedException{System.setProperty("webdriver.friefox.bin","C:\\Program Files\\Mozilla Firefox\\friefox.exe");FirefoxProfilefp=newFirefoxProfile();WebDriverdriver=newFirefoxDriver(fp);driver.get("http://www.baidu.com");driver.findElement(By.id("kw")).sendKeys("testerhome");Reporter.log("测试1通过");}@TestpublicvoidOpen1()throwsInterruptedException{System.setProperty("webdriver.friefox.bin","C:\\Program Files\\Mozilla Firefox\\friefox.exe");FirefoxProfilefp=newFirefoxProfile();WebDriverdriver=newFirefoxDriver(fp);driver.get("http://www.baidu.com");driver.findElement(By.id("kw")).sendKeys("testerhome");Reporter.log("测试2通过");}@TestpublicvoidOpen2()throwsInterruptedException{System.setProperty("webdriver.friefox.bin","C:\\Program Files\\Mozilla Firefox\\friefox.exe");FirefoxProfilefp=newFirefoxProfile();WebDriverdriver=newFirefoxDriver(fp);driver.get("http://www.baidu.com");driver.findElement(By.id("k1w")).sendKeys("testerhome");Reporter.log("测试3通过");}@Afterpublicvoidquit()throwsInterruptedException{driver.quit();}}

3,配置testNG.xml,这个文件是testNG的配置文件,

<?xmlversion="1.0"encoding="UTF-8"?><suitename="test"parallel="true"><testname="test"preserver-order="true"><classes>//你也可以多个<classname="包名.case名字"/><classname="包名.case名字"/><classname="包名.case名字"/></classes><listeners>//这是你需要加的东西<listenerclass-name="org.uncommons.reportng.HTMLReporter"/><listenerclass-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这个方法中的代码如下:
现在是这样的:

protectedvoidgenerateFile(Filefile,StringtemplateName,VelocityContextcontext)throwsException{Writerwriter=newBufferedWriter(newFileWriter(file));try{Velocity.mergeTemplate(classpathPrefix+templateName,ENCODING,context,writer);writer.flush();}finally{writer.close();}}

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

protectedvoidgenerateFile(Filefile,StringtemplateName,VelocityContextcontext)throwsException{//Writer writer = new BufferedWriter(new FileWriter(file));//encoding to utf-8OutputStreamout=newFileOutputStream(file);Writerwriter=newBufferedWriter(newOutputStreamWriter(out,"utf-8"));try{Velocity.mergeTemplate(classpathPrefix+templateName,ENCODING,context,writer);writer.flush();}finally{writer.close();}}

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

时间: 2024-11-08 17:08:08

自动化测试报告(ReportNG)手把手教你的相关文章

从投简历到谈薪酬,手把手教你应聘远程办公的工作

要是都能在家工作,谁还想去上班呀?远程办公虽好,竞争却也激烈.这篇原题为Tips for landing the job you want的文章发表于科技网站Code like a Girl,作者以个人经历告诉你远程求职从筛选简历到面试各阶段的注意事项,求职季马上到,小伙伴们可以收好啦. 远程工作很难找.我们团队的许多员工都可以远程办公.目前,我们的团队已扩充到85余人,并且长期欢迎来自以下国家和美国州的人们加入: 国家包括:阿根廷,巴西,保加利亚,加拿大,克罗地亚,埃及,英国,德国,危地马拉,

手把手教您制作一个完整网站(内附教程)

手把手教您制作一个完整网站(内附教程) 1.搞个简单的策划先. 至少应该有一个大概的方向吧,先确定网站的类型,是地区门户.行业门户,还是下载.电影.论坛等等.然后基本确定网站的名称. 2.找一个合适的域名. 域名注册.com(国际域名)和.cn(国内域名)为宜,域名最好不要太长.且有一定的意义.容易记,现在好的域名已经不多了,你可灵活的使用数字.英文单词.拼音等的组合,在域名的前.后加上i.e.51.ok.hao.88.163等,可以灵活的组合出许多好的域名.域名注册信息查询 http://ww

手把手教你实现、部署和调用Web Service

手把手教你实现.部署和调用Web Service

手把手教你学习Flash视频教程

教程|视频教程 手把手教你学Dreamweaver MX 2004视频教程 Flash MX 2004实例视频教程 手把手教你学3D MAX 7.0中文版视频教程 手把手教你学Photoshop视频教程 手把手教你学Photoshop实例视频教程 金鹰电脑教程网:Flash MX 操作大全 [视频教程] 与单纯的图文教程相比,生动活泼的视频多媒体教程更容易吸引大家的注意,让学习过程更加轻松有趣. 这里推出的是金鹰工作室制作组精心制作的一系列从入门基础到高级应用的Flash制作的视频多媒体教程,和

手把手教你学Web Service

Well,各位观众,现在开始我的手把手交Visual Studio.net的第一课―-手把手教你学Web Service.有没有下一课还得看诸位看官的反应了!我们知道,在MS新一代战略.net中,Web Service占了一个相当次大的份量,为什么这样说那?那是因为Web Service 是未来编程的新 思路,他将编程由本机扩大到了Internet上,他通过一个proxy.dll就可以访问在Internet上 提供的Service,并且就像在本机上操作一样方便,其实,Web Service也可以

手把手教你绘制超逼真的积雪场景

  Step 1 在图片上新建图层.选择地面区域并用带点灰蓝色填充(#d6d8e3) Step 2 使用图层蒙版(如果懒的话可以直接用橡皮擦)把砖柱露出来,我们只需要积雪的区域. Step 3 大致调整下砖柱跟远方的山的形状,让场景更自然. Step 4 创建一个新图层并按住Shift键使用椭圆工具画出一个正圆. Step 5 创建新图层并用灰蓝色(#6d85ad)填充,剪贴蒙版至之前的圆内(按住ALT在两个图层中间点击或者使用CTRL+ALT+G). Step 6 使用柔圆画笔,用比之前更亮的

手把手教你改善界面交互动画

  本文将探究UI设计中动画效果的过度应用,通过对比早期的视觉设计,为UI动画的有效设计提供一些建议,另外附上实战案例,手把手教你改进文中案例的交互动画哟. 遗憾的是,这并非某个做作的反面案例--而是某个近期客户处拿来的实例. 简介 自70-80年代CRT屏幕上映第一幅光栅图形以来,人们对数字视觉设计的态度便不断进化.与其他艺术领域不同,数字设计的潮流始终随可用工具的进化而变化. 我们已经见证了设备显示能力的不断进步--从有限的CGA分辨率 (320 x 200) 到VGA(640 x 480)

手把手教你安装Android x86

话说最近操作系统这个话题的确是非常火爆.也许是借助于Windows 8消费者预览版的光芒,凡是与系统搭边的东西大家好像都喜欢与Windows 8进行比较.不管结果如何,笔者相信软件不同于硬件,只有适合自己的软件才是最重要的. 当然介于现在可以使用的系统众多,其中Android x86版也是大家关注的焦点.许多人都希望能够尝试一下不同于Windows的体验以及感受.但是也许是受限于个人能力,许多入门玩家更多地是选择驻足观看而不是亲身体验.这其中很大一部分原因要归结为这些玩家不了解不同系统的安装方法

PS手把手教你绘制超逼真的湖面冰层

  Step 1 按照透视定义水的区域. Step 2 新建图层,使用矩形选框工具(M)选择水的区域,使用任意颜色填充. Step 3 使用图层蒙版或橡皮擦工具露出砖柱部分.我们将使用这一图层作为剪贴图层. Step 4 复制(CTRL+J)背景图层,并将其剪贴至上一图层(CTRL+ALT+G).使用滤镜>模糊>高斯模糊--这能创建冰层厚度效果. Step 5 冰会有反射效果,背景的反射效果很容易,我们要花费更多工夫在砖柱的反射上.反射需要符合透视效果!使用钢笔工具(P)选择前面的砖柱,将路径

手把手教你用photoshop做重影效果教程

  手把手教你用photoshop做重影效果教程在网上看到一个重影效果,我觉得对于摄影后期处理是一个很好的技巧,然后用我自己理解的把他再重做了一遍,希望让大家更好理解   分类: PS图片处理