自动化生成html报告

  1 package Utils;
  2 
  3 import java.io.File;
  4 import java.util.Date;
  5 
  6 import org.apache.commons.lang3.time.DateFormatUtils;
  7 import org.apache.log4j.Logger;
  8 import org.testng.Reporter;
  9 
 10 public class ReportUtils {
 11 
 12     private static Logger logger = Logger.getLogger(ReportUtils.class.getName());
 13 
 14     public ReportUtils() {
 15         System.setProperty("org.uncommons.reportng.escape-output", "false");
 16     }
 17 
 18     /*********************************************************************************************
 19      * 写log和报告操作
 20      *********************************************************************************************/
 21     /**
 22      * 写日志和报告
 23      *
 24      * @param comm
 25      */
 26     public void log(String... comm) {
 27         String time = DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss");
 28         if (comm.length == 0) {
 29             Reporter.log("[" + time + "] <br />");
 30             logger.info("");
 31         } else {
 32             Reporter.log("[" + time + "] " + comm[0] + "<br />");
 33             logger.info(comm[0]);
 34         }
 35     }
 36 
 37     /**
 38      * 写日志和报告
 39      *
 40      * @param comm
 41      * @comment 如果selenium.properties中【isPrintDebugMsg】值为0,则只打印looger,不打印report
 42      */
 43     public void debug(String... comm) {
 44         if (1 == 1) {
 45             log("[debug]" + comm[0]);
 46         } else {
 47             logger.info(comm[0]);
 48         }
 49     }
 50 
 51     /**
 52      * 写错误日志和报告
 53      *
 54      * @param comm
 55      */
 56     public void error(String comm) {
 57         String time = DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss");
 58         Reporter.log("<span style=\"color:#FF0000\"><b>[" + time + "] [ERROR] " + comm + "</b></span><br />");
 59         logger.error(comm);
 60     }
 61 
 62     /**
 63      * 写警告日志和报告
 64      *
 65      * @param comm
 66      */
 67     public void warn(String comm) {
 68         String time = DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss");
 69         Reporter.log("<span style=\"color:#FF7F27\"><b>[" + time + "] [WARNING] " + comm + "</b></span><br />");
 70         logger.warn(comm);
 71     }
 72 
 73     /**
 74      * 写重要的日志和报告
 75      *
 76      * @param comm
 77      */
 78     public void highLight(String comm) {
 79         log("<span style='background-color:#FFE500;'>" + comm + "</span>");
 80     }
 81 
 82     /**
 83      * 写绿色高亮的的日志和报告
 84      *
 85      * @param comm
 86      */
 87     public void greenLight(String comm) {
 88         log("<span style='background-color:#CFFFBA;'>" + comm + "</span>");
 89     }
 90 
 91     /**
 92      * 参数高亮
 93      *
 94      * @param comm
 95      */
 96     public void paraLight(String comm) {
 97         if (1 == 1) {
 98             log("<span style='background-color:#E4FFD9;'>" + comm + "</span>");
 99         } else {
100             logger.info(comm);
101         }
102     }
103 
104     /**
105      * 给MCDB用的日志和报告
106      *
107      * @param comm
108      */
109     public void mcdbLight(String comm) {
110         if (1 == 1) {
111             log("<span style='background-color:#C1E7F7;'>[MCDB]" + comm + "</span>");
112         } else {
113             logger.info("[MCDB]" + comm);
114         }
115     }
116 
117     /**
118      * 写醒目的标题
119      *
120      * @param comm
121      */
122     public void title(String comm) {
123         String str;
124         str = "<p style=\"color:#0068BD;margin-top:25px;margin-bottom:8px\"><b>";
125         str = str + "**********************************************************************************************<br>";
126         str = str + "* " + comm + "<br>";
127         str = str + "**********************************************************************************************</b>";
128         str = str + "</p>";
129         Reporter.log(str);
130     }
131 
132     /**
133      * 用于截图的log写入
134      *
135      * @param comm
136      * @param file
137      */
138     public void screenShotLog(String comm, File file) {
139         int width = 350;
140         String absolute = "file:" + file.getAbsolutePath();
141 
142         Reporter.log("<a target='_blank' href=\"" + absolute + "\">");
143         Reporter.log("<img width=\"" + width + "\" src=\"" + absolute + "\" />    " + comm);
144         Reporter.log("</a><br />");
145     }
146 }
View Code

 

 
posted @ 2017-08-30 09:39  Sunny*  阅读(1062)  评论(0编辑  收藏  举报