Java发送reportng报告邮件,定制并优化reportng生成测试报告

1.首先,我们得去github上下载reportng源码。

源码使用的是Intellij+Maven+Ant+TestNG开发的Java项目。

我使用的是官网免费的IntelliJ IDEA Community Edition 2016.2

2.然后,导入maven工程代码,并处理掉报错。

32074671_201608031434430376881102.png

3.修改ReportNGUtils类。

/***@authorSunny*@paramdriver*@parambaseDir*@return*/public staticString getImageString(WebDriver driver,String baseDir) {

String imgName = generateFileNameWithPrefix();File srcFile = ((TakesScreenshot) driver)

.getScreenshotAs(OutputType.FILE);try{

FileUtils.copyFile(srcFile, newFile(baseDir + File.separator+ imgName));} catch(IOException e) {

//TODO Auto-generated catch blocke.printStackTrace();}

returnimgName;}

public staticString removeImage(String imgName) {

returnimgName.replaceAll("","");}

public staticString generateFileNameWithPrefix() {

finalDateFormat ExcuteTime_FILE_NAME = DateFormat.getDateTimeInstance(DateFormat.MEDIUM,DateFormat.MEDIUM);String fileName = ExcuteTime_FILE_NAME + ".png";returnfileName;}

4.修改ReportMetadata类,为了处理打开的index.html时间显示乱码。

32074671_201608031432090752504264.png

将原字段DATE_FORMAT属性改为:

private staticLocale locale= newLocale("en","US");private static finalDateFormat DATE_FORMAT= DateFormat.getDateInstance(

DateFormat.FULL,locale);

5.修改TestResultComparator类。

public intcompare(ITestResult result1,ITestResult result2)

{

/***@authorSunny* Update veriable longresult2*/// return result1.getName().compareTo(result2.getName());intlongresult2 = 0;if(result1.getStartMillis() < result2.getStartMillis()) {

longresult2 = -1;} else{

longresult2 = 1;}

returnlongresult2;}

6.修改reportng.properties文件,自定义oneclass属性值。

oneclass.description=Descriptiononeclass.duration=Durationoneclass.testdata=Data being usedoneclass.testresult=Test resultoneclass.screenshot=Screen shotoneclass.additionalinfo=Additional Info

#set ($output = $utils.getTestOutput($testResult))

#if ($output.size() > 0)

#foreach( $line in $output )

#if ($meta.shouldEscapeOutput())

$utils.escapeHTMLString($utils.getImageString($line))

#else

$utils.getImageString($line)

#end

#end

#end

8.修改results.html.vm文件,fail是本次需要修改的、skipped可根据需要来修定。

#if ($failedTests.size() > 0)

$messages.getString("failedTests")

#foreach ($testClass in $failedTests.keySet())

$testClass.name ⁄ $messages.getString("oneclass.duration")$messages.getString("oneclass.description")$messages.getString("oneclass.testdata")$messages.getString("oneclass.testresult")$messages.getString("oneclass.screenshot")

#set ($classResults = $failedTests.get($testClass))

#parse ("org/uncommons/reportng/templates/html/class-results.html.vm")

#end

#end

#if ($skippedTests.size() > 0)

$testClass.name ⁄ $messages.getString("oneclass.duration")

#foreach ($testClass in $skippedTests.keySet())

$testClass.name$messages.getString("oneclass.description")$messages.getString("oneclass.testdata")$messages.getString("oneclass.testresult")$messages.getString("oneclass.screenshot")

#set ($classResults = $skippedTests.get($testClass))

#parse ("org/uncommons/reportng/templates/html/class-results.html.vm")

#end

#end

9.源码修改基本完成,接下来就是测试与打包。由于author使用的是很老的Ant打包。

原出处(结合两者):

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值