这个报告比较简单,用html写一下再把测试数据填充上去就好了,如果要报告比较好看可以找前端同学帮助美化一下。
先创建一个类继承testng的监听器,并在执行用例的时候把这个监听器加上就可以了
package com.appiumreport;
import com.appium.api.Log;
import com.appium.api.ScreenshotMethodObject;
import com.testcase.Utils;
import org.testng.ITestContext;
import org.testng.ITestResult;
import org.testng.TestListenerAdapter;
import org.testng.collections.Objects;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;
import java.text.NumberFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
* Created by king-wit on 2017/9/16 0016.
* 测试监听器,测试报告模板
*/
public class TestReport extends TestListenerAdapter {
public static String reportPath; //测试报告路径
private static String allRunTime; //总测试时间
private static int caseNum; //用例数量
private static String failNum;
private static String scuessNum;
private static String scuessRate; //成功率
private static String failRate; //失败率
private static int serialNumber = 1; //序号
private static String caseName; //用例名字
private static String expectedResult = "success"; // 期待结果
private static String actualResult; //实际结果
//固定头内容
@Override
public void onStart(ITestContext context)
{
File htmlReportDir = new File("D:/FTP/AutoTest");
if (!htmlReportDir.exists()) {
htmlReportDir.mkdirs();
}
String reportName = formateDate()+".html";
reportPath = htmlReportDir+"\\"+reportName;
File report = new File(htmlReportDir,reportName);
if(!report.exists()){
try {
report.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
Log.info("测试报告路径为:"+reportPath);
StringBuilder sb = new StringBuilder("<html><head><meta content=\"text/html; charset=utf-8\" />"
+ "<title >UI自动化测试报告</title></head><body>