报告生成

一般我们写的脚本可能覆盖了较多的测试项,而且可能持续运行了一段时间,本文将教各位实现在执行完自动化脚本后自动生成一份美化报告

package ts.dw.logic;

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;

public class HTMLLOG {
static GregorianCalendar time = new GregorianCalendar();
public static String filePath = "";
public static String reportGenerated = "";

//写入HTML
public void generateReport()throws Exception{
reportGenerated="true";
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
Calendar cal = Calendar.getInstance();
String timeStamp=dateFormat.format(cal.getTime());
//String path = System.getProperty("user.dir")+"log";
filePath = "log\\"+"Regression_Result-"+"-"+timeStamp+".html";
FileWriter fstream = new FileWriter(filePath);
System.out.println("Report's FileName: "+filePath);
BufferedWriter out = new BufferedWriter(fstream);
out.write("html");
out.write("head");
//out.write("meta http-equiv='Content-Type' content='text/html; charset=utf-8'");
out.write("style type='text/css' "
+ " #summary"
+ " {"
+ " font-family:\"Trebuchet MS\", Arial, Helvetica, sans-serif;"
+ " width:100%;"
+ " border-collapse:collapse;"
+ " }"
+ " #summary td, #summary th"
+ " {"
+ " font-size:0.8em;"
+ " border:1px solid #98bf21;"
+ " padding:3px 7px 2px 7px;"
+ " }"
+ " #summary th"
+ " {"
+ " font-size:1.0em;"
+ " text-align:left;"
+ " padding-top:5px;"
+ " padding-bottom:4px;"
+ " background-color:#A7C942;"
+ " color:#ffffff;"
+ " }"

+ " #componentWiseSummary"
+ " {"
+ " font-family:\"Trebuchet MS\", Arial, Helvetica, sans-serif;"
+ " width:100%;"
+ " border-collapse:collapse;"
+ " }"
+ " #summary td, #summary th"
+ " {"
+ " font-size:0.8em;"
+ " border:1px solid #98bf21;"
+ " padding:3px 7px 2px 7px;"
+ " }"
+ " #summary th"
+ " {"
+ " font-size:1.0em;"
+ " text-align:left;"
+ " padding-top:5px;"
+ " padding-bottom:4px;"
+ " background-color:#A7C942;"
+ " color:#ffffff;"
+ " }"

+ " #customers"
+ " {"
+ " font-family:\"Trebuchet MS\", Arial, Helvetica, sans-serif;"
+ " width:100%;"
+ " border-collapse:collapse;"
+ " }"
+ " #customers td, #customers th"
+ " {"
+ " font-size:0.8em;"
+ " border:1px solid #98bf21;"
+ " padding:3px 7px 2px 7px;"
+ " }"
+ " #customers th"
+ " {"
+ " font-size:1.1em;"
+ " text-align:left;"
+ " padding-top:5px;"
+ " padding-bottom:4px;"
+ " background-color:#A7C942;"
+ " color:#ffffff;"
+ " }"
+ " #customers tr.alt td"
+ " {"
+ " color:#000000;"
+ " background-color:#EAF2D3;"
+ " }"
+ " </style>");
out.write("head");

out.write("body text-align:center");

out.write("table width=100% border=0 cellpadding=2 cellspacing=2");
out.write("tbody");
out.write("tr");
out.write("td");
out.write("table width=100% border=0 cellpadding=2 cellspacing=2");
out.write("tbody");
out.write("tr");
out.write("td align=center p class=title h1 自动化测试报告-By Kiven h1 p td tr");
out.write("tr" + "tbody" + "table" + "br");

/**
* Creating tables in HTML for Test Status
*/
out.write("table id=\"customers\"");
out.write("tr");
out.write("th Test Case Name</th>");
out.write("th Test Case ID</th>");
out.write("th Test Name and Steps</th>");
out.write("th Test Data th");
out.write("th Expected Result th");
out.write("th Actual Result th");
out.write("tr");
out.write("body");
out.write("html");
out.flush();
out.close();
}

/*
* 将每一步执行的情况写入日志文件
*/
public void sendStatusToReport(String T_Name,String TC_ID, String Steps,String Data,String verify,String Result)throws Exception{

//先原文件末尾添加内容
FileWriter fstream = new FileWriter(filePath, true);
BufferedWriter out = new BufferedWriter(fstream);

//如果该行是测试用例标题行,则颜色设置为黄色,合并成一行并居中
if(Integer.parseInt(TC_ID)==0){
out.write("tr bgcolor=#FFFF00 align='center'");
out.write("td colspan='6' b" + T_Name + "b td");
out.write("tr");
//刷新缓冲区
out.flush();
//关闭流
out.close();
}else{
//每行颜色设置成不同
//偶数行
if(Integer.parseInt(TC_ID)%2==0){
//fail
if(Result.equals("Fail")){
out.write("tr bgcolor=#FF0000");//红色
}else{
out.write("tr");
}
//奇数行
}else{
//fail
if(Result.equals("Fail")){
out.write("tr bgcolor=#FF0000");//red:bgcolor=#FF0000
}else{
out.write("tr bgcolor=#EAF2D3");//灰绿色
}
}
out.write("td b" + T_Name + "b td");
out.write("td b" + TC_ID + "b td");
out.write("td b" + Steps + "b td");
out.write("td b" + Data + "b td");
out.write("td b" + verify + "b td");
out.write("td b" + Result + "b td");
out.write("tr");
out.flush();
out.close();
}


}

//测试函数
public static void main(String args[]) throws Exception{
HTMLLOG hl = new HTMLLOG();
hl.generateReport();
hl.sendStatusToReport("致友登录", "0", "操作步骤", "测试数据", "预期结果", "实际结果");
hl.sendStatusToReport("", "1", "输入邮箱", "kiven@kk.com", "输入成功", "Pass");
hl.sendStatusToReport("", "2", "输入密码", "1", "输入成功", "Fail");
hl.sendStatusToReport("", "3", "输入邮箱", "kicen@kk.com", "输入成功", "Pass");
hl.sendStatusToReport("", "4", "输入密码", "1", "输入成功", "Pass");
hl.sendStatusToReport("", "5", "干什么", "1", "哦", "Pass");
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值