package Utils;

 import java.io.File;
import java.util.Date; import org.apache.commons.lang3.time.DateFormatUtils;
import org.apache.log4j.Logger;
import org.testng.Reporter; public class ReportUtils { private static Logger logger = Logger.getLogger(ReportUtils.class.getName()); public ReportUtils() {
System.setProperty("org.uncommons.reportng.escape-output", "false");
} /*********************************************************************************************
* 写log和报告操作
*********************************************************************************************/
/**
* 写日志和报告
*
* @param comm
*/
public void log(String... comm) {
String time = DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss");
if (comm.length == 0) {
Reporter.log("[" + time + "] <br />");
logger.info("");
} else {
Reporter.log("[" + time + "] " + comm[0] + "<br />");
logger.info(comm[0]);
}
} /**
* 写日志和报告
*
* @param comm
* @comment 如果selenium.properties中【isPrintDebugMsg】值为0,则只打印looger,不打印report
*/
public void debug(String... comm) {
if (1 == 1) {
log("[debug]" + comm[0]);
} else {
logger.info(comm[0]);
}
} /**
* 写错误日志和报告
*
* @param comm
*/
public void error(String comm) {
String time = DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss");
Reporter.log("<span style=\"color:#FF0000\"><b>[" + time + "] [ERROR] " + comm + "</b></span><br />");
logger.error(comm);
} /**
* 写警告日志和报告
*
* @param comm
*/
public void warn(String comm) {
String time = DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss");
Reporter.log("<span style=\"color:#FF7F27\"><b>[" + time + "] [WARNING] " + comm + "</b></span><br />");
logger.warn(comm);
} /**
* 写重要的日志和报告
*
* @param comm
*/
public void highLight(String comm) {
log("<span style='background-color:#FFE500;'>" + comm + "</span>");
} /**
* 写绿色高亮的的日志和报告
*
* @param comm
*/
public void greenLight(String comm) {
log("<span style='background-color:#CFFFBA;'>" + comm + "</span>");
} /**
* 参数高亮
*
* @param comm
*/
public void paraLight(String comm) {
if (1 == 1) {
log("<span style='background-color:#E4FFD9;'>" + comm + "</span>");
} else {
logger.info(comm);
}
} /**
* 给MCDB用的日志和报告
*
* @param comm
*/
public void mcdbLight(String comm) {
if (1 == 1) {
log("<span style='background-color:#C1E7F7;'>[MCDB]" + comm + "</span>");
} else {
logger.info("[MCDB]" + comm);
}
} /**
* 写醒目的标题
*
* @param comm
*/
public void title(String comm) {
String str;
str = "<p style=\"color:#0068BD;margin-top:25px;margin-bottom:8px\"><b>";
str = str + "**********************************************************************************************<br>";
str = str + "* " + comm + "<br>";
str = str + "**********************************************************************************************</b>";
str = str + "</p>";
Reporter.log(str);
} /**
* 用于截图的log写入
*
* @param comm
* @param file
*/
public void screenShotLog(String comm, File file) {
int width = 350;
String absolute = "file:" + file.getAbsolutePath(); Reporter.log("<a target='_blank' href=\"" + absolute + "\">");
Reporter.log("<img width=\"" + width + "\" src=\"" + absolute + "\" /> " + comm);
Reporter.log("</a><br />");
}
}
 

自动化生成html报告的更多相关文章

  1. 利用Python半自动化生成Nessus报告

    0x01 前言 Nessus是一个功能强大而又易于使用的远程安全扫描器,Nessus对个人用户是免费的,只需要在官方网站上填邮箱,立马就能收到注册号了,对应商业用户是收费的.当然,个人用户是有16个I ...

  2. python+requests+excel+unittest+ddt接口自动化数据驱动并生成html报告(二)

    可以参考 python+requests接口自动化完整项目设计源码(一)https://www.cnblogs.com/111testing/p/9612671.html 原文地址https://ww ...

  3. python+requests+excel+unittest+ddt接口自动化数据驱动并生成html报告(已弃用)

    前言 1.环境准备: python3.6 requests xlrd openpyxl HTMLTestRunner_api 2.目前实现的功能: 封装requests请求方法 在excel填写接口请 ...

  4. [自动化]基于kolla-ansible部署的openstack自动化巡检生成xlsx报告

    自动化巡检介绍 此巡检项目在kolla-ansible部署的openstack环境上开发,利用ansible-playbook编排的功能,对巡检的任务进行编排和数据处理.主要巡检的对象有IaaS平台和 ...

  5. [自动化]基于kolla部署的openstack自动化巡检生成xlsx报告

    自动化巡检介绍 此巡检项目在kolla-ansible部署的openstack环境上开发,利用ansible-playbook编排的功能,对巡检的任务进行编排和数据处理.主要巡检的对象有IaaS平台和 ...

  6. python+requests+excel+unittest+ddt接口自动化数据驱动并生成html报告

    1.环境准备: python3.6 requests xlrd openpyxl HTMLTestRunner_api 2.目前实现的功能: 封装requests请求方法 在excel填写接口请求参数 ...

  7. unittest同时支持参数化和生成html报告

    最近在用python3.6+unittest+requests做自动化接口测试.发现一个问题,unittest中使用第3方插件parameterized进行参数化,再生成html报告时,运行就会失败. ...

  8. pytest文档13-allure2生成html报告(史上最详细)

    前言 allure是一个report框架,支持java的Junit/testng等框架,当然也可以支持python的pytest框架,也可以集成到Jenkins上展示高大上的报告界面. 环境准备 1. ...

  9. pytest十五:pytest-html 生成 html 报告

    pytest-HTML 是一个插件,pytest 用于生成测试结果的 HTML 报告.兼容 Python 2.7,3.6 pytest-html1.github 上源码地址[https://githu ...

随机推荐

  1. 【原创】Odoo开发文档学习之:ORM API接口(ORM API)(边Google翻译边学习)

    官方ORM API开发文档:https://www.odoo.com/documentation/10.0/reference/orm.html Recordsets(记录集) New in vers ...

  2. OpenCV人脸识别的原理 .

    OpenCV人脸识别的原理 . 在之前讲到的人脸测试后,提取出人脸来,并且保存下来,以供训练或识别是用,提取人脸的代码如下: void GetImageRect(IplImage* orgImage, ...

  3. 1071: [SCOI2007]组队

    1071: [SCOI2007]组队 https://lydsy.com/JudgeOnline/problem.php?id=1071 分析: dp+单调性. A*(hi–minH)+B*(si–m ...

  4. hive 数据导入

    Hive的几种常见的数据导入方式这里介绍四种:(1).从本地文件系统中导入数据到Hive表:(2).从HDFS上导入数据到Hive表:(3).从别的表中查询出相应的数据并导入到Hive表中:(4).在 ...

  5. 安装完.net core sdk 后部署 ASP.NET Core 出现错误502.5

    将项目升级到和sdk一样的版本 然后 命令行执行 iisreset

  6. centos7 安装java+tomcat

    环境准备:1.Linux 系统服务器: CentOS 72.yum 3.4.33.java 1.84.tomcat yum环境 运行rpm -qa | grep yum [root@localhost ...

  7. Python中的内建函数(Built_in Funtions)

    前言 在Python官方文档的标准库章节中,第一节是简介,第二节就是Built_in Functions,可见内建函数是Python标准库的重要组成部分,而有很多内建函数我们平时却很少用到或根本就不知 ...

  8. Teaching Machines to Understand Us 让机器理解我们 之一 引言

    Teaching Machines to Understand Us   By Tom Simonite  MIT Technology Review Vol.118 No.5 2015 让机器理解我 ...

  9. RetinaNet 迁移学习到自标数据集

    Keras-RetinaNet 在自标数据集 alidq 上训练 detection model RetinaNet 模型部署与环境配置 参考README 数据预处理 数据统计信息: 类别:gun1, ...

  10. react-native debug js remotely跨域问题

    react-native debug js remotely跨域问题 我们在安卓真机上调试react-native时,启用debug js remotely的时候,会出现跨域问题.这个时候我们只需要一 ...