自动化生成html报告
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报告的更多相关文章
- 利用Python半自动化生成Nessus报告
0x01 前言 Nessus是一个功能强大而又易于使用的远程安全扫描器,Nessus对个人用户是免费的,只需要在官方网站上填邮箱,立马就能收到注册号了,对应商业用户是收费的.当然,个人用户是有16个I ...
- python+requests+excel+unittest+ddt接口自动化数据驱动并生成html报告(二)
可以参考 python+requests接口自动化完整项目设计源码(一)https://www.cnblogs.com/111testing/p/9612671.html 原文地址https://ww ...
- python+requests+excel+unittest+ddt接口自动化数据驱动并生成html报告(已弃用)
前言 1.环境准备: python3.6 requests xlrd openpyxl HTMLTestRunner_api 2.目前实现的功能: 封装requests请求方法 在excel填写接口请 ...
- [自动化]基于kolla-ansible部署的openstack自动化巡检生成xlsx报告
自动化巡检介绍 此巡检项目在kolla-ansible部署的openstack环境上开发,利用ansible-playbook编排的功能,对巡检的任务进行编排和数据处理.主要巡检的对象有IaaS平台和 ...
- [自动化]基于kolla部署的openstack自动化巡检生成xlsx报告
自动化巡检介绍 此巡检项目在kolla-ansible部署的openstack环境上开发,利用ansible-playbook编排的功能,对巡检的任务进行编排和数据处理.主要巡检的对象有IaaS平台和 ...
- python+requests+excel+unittest+ddt接口自动化数据驱动并生成html报告
1.环境准备: python3.6 requests xlrd openpyxl HTMLTestRunner_api 2.目前实现的功能: 封装requests请求方法 在excel填写接口请求参数 ...
- unittest同时支持参数化和生成html报告
最近在用python3.6+unittest+requests做自动化接口测试.发现一个问题,unittest中使用第3方插件parameterized进行参数化,再生成html报告时,运行就会失败. ...
- pytest文档13-allure2生成html报告(史上最详细)
前言 allure是一个report框架,支持java的Junit/testng等框架,当然也可以支持python的pytest框架,也可以集成到Jenkins上展示高大上的报告界面. 环境准备 1. ...
- pytest十五:pytest-html 生成 html 报告
pytest-HTML 是一个插件,pytest 用于生成测试结果的 HTML 报告.兼容 Python 2.7,3.6 pytest-html1.github 上源码地址[https://githu ...
随机推荐
- WPF 带水印的密码输入框
原文:WPF 带水印的密码输入框 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/BYH371256/article/details/83652540 ...
- day9 匿名函数 lambda
1. list列表排序 #### sort排序 nums = [,,,,,] nums.sort() print(nums) ### 结果 [, , , , , ] ######## 逆序 In [] ...
- day 10 字典dict
添加 xxx[新的key] = value 删除 del xx[key] 修改 xxx[已存在的key] = new_value 查询 xxx.get(key) 1. dict 字典 #### lis ...
- Azkaban系统的安装和分析。
Azkaban系统是一个数据处理的很好用的工具,可以用来运行hadoop任务,管理hdfs,可以进行schedule任务调度,总体来说功能还是很强大的. 研究了一下azkaban,做了以下总结性的东西 ...
- cogs1439 货车运输
cogs1439 货车运输 一道傻逼板子题. 边一定在最大生成树上,这个可以用消圈证明 然后kruskal跑一遍再搜一遍再建ST表再跑LCA这题就做完了. RT PS.交上去的代码把Kruskal打成 ...
- MantisBT导出Excel文件名显示中文的修改方法
我安装的是 mantisbt-2.15.0. 在“查看问题”页面导出Excel文件后,其文件名虽然是我选择的项目名称,但是,若项目名称中有中文,这就是用%加编码显示. 解决方法是: 在 <Ma ...
- 该用哪个:Redis与Memcached之间如何选择呢?
华为云分布式缓存Redis5.0和Memcached都是华为云DCS的核心产品. 那么在不同的使用场景之下,如何选择Redis5.0和Memcached呢? 就由小编为大家进行详细的数据对比分析吧 R ...
- SQL中NULL的妙用
商品表Products 库房表WarehouseDistrict 库存表WarehouseStock 一般写法 ;WITH stock AS ( SELECT DistrictId, ProductI ...
- centos 系统初始化
centos 系统初始化 #!/bin/bash # author cfwl create date of 2012-10-21 # blog http://cfwlxf.blog.51cto.com ...
- php命名空间学习笔记。
为什么要用命名空间? 在PHP中,命名空间用来解决在编写类库或应用程序时创建可重用的代码如类或函数时碰到的两类问题: 用户编写的代码 与 PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲 ...