package com01; //修改为正确的包名
importjava.io.File;importjava.io.IOException;importjava.nio.file.Files;importjava.nio.file.Paths;importjava.nio.file.StandardOpenOption;importjava.text.SimpleDateFormat;importjava.util.Calendar;importjava.util.Date;importorg.testng.ITestContext;importorg.testng.ITestResult;importorg.testng.TestListenerAdapter;public class TestReport extendsTestListenerAdapter{privateString reportPath;
@Overridepublic voidonStart(ITestContext context) {
File htmlReportDir= new File("test-output");if (!htmlReportDir.exists()) {
htmlReportDir.mkdirs();
}
String reportName= formateDate()+"_result.html";
reportPath= htmlReportDir+"/"+reportName;
File report= newFile(htmlReportDir,reportName);if(report.exists()){try{
report.createNewFile();
}catch(IOException e) {
e.printStackTrace();
}
}
StringBuilder sb= new StringBuilder("
"+ "
自动化测试报告"+ "
测试用例运行结果列表
"+ "
+ ""
+ "
"+ "
测试用例名"+ "
测试用例结果"+ "
"+ "
"+ "
");String res=sb.toString();try{
Files.write((Paths.get(reportPath)),res.getBytes("utf-8"));
}catch(IOException e) {
e.printStackTrace();
}
}
@Overridepublic voidonTestSuccess(ITestResult result) {
StringBuilder sb= new StringBuilder("
");sb.append(result.getMethod().getRealClass()+"."+result.getMethod().getMethodName());
sb.append("
Passed");String res=sb.toString();try{
Files.write((Paths.get(reportPath)),res.getBytes("utf-8"),StandardOpenOption.APPEND);
}catch(IOException e) {
e.printStackTrace();
}
}
@Overridepublic voidonTestSkipped(ITestResult result) {
StringBuilder sb= new StringBuilder("
");sb.append(result.getMethod().getRealClass()+"."+result.getMethod().getMethodName());
sb.append("
Skipped");sb.append("
测试用例跳过,原因:
");
sb.append("");
Throwable throwable=result.getThrowable();
sb.append(throwable.getMessage());
sb.append("
");String res=sb.toString();try{
Files.write((Paths.get(reportPath)),res.getBytes("utf-8"),StandardOpenOption.APPEND);
}catch(IOException e) {
e.printStackTrace();
}
}
@Overridepublic voidonTestFailure(ITestResult result) {
StringBuilder sb= new StringBuilder("
");sb.append(result.getMethod().getRealClass()+"."+result.getMethod().getMethodName());
sb.append("
Failed");
sb.append("
测试用例执行失败,原因:
");
sb.append("");
Throwable throwable=result.getThrowable();
sb.append(throwable.getMessage());
sb.append("
");String res=sb.toString();try{
Files.write((Paths.get(reportPath)),res.getBytes("utf-8"),StandardOpenOption.APPEND);
}catch(IOException e) {
e.printStackTrace();
}
}
@Overridepublic voidonFinish(ITestContext testContext) {
StringBuilder sb= new StringBuilder("
返回顶部sb.append("");
String msg=sb.toString();try{
Files.write((Paths.get(reportPath)),msg.getBytes("utf-8"),StandardOpenOption.APPEND);
}catch(IOException e) {
e.printStackTrace();
}
}public staticString formateDate(){
SimpleDateFormat sf= new SimpleDateFormat("yyyyMMdd HHmmss");
Calendar cal=Calendar.getInstance();
Date date=cal.getTime();returnsf.format(date);
}
}