关于如何自定义修改pytest-html报告深度学习总结
第一、pytest-html执行命令总结:
pytest test_case.py --html=report.html --self-contained-html 直接html独立显示
pytest test_case.py --html=report.html 包含assets样式文件,htmL显示需要依赖于此文件
第二、关于如何修改pytest-html的报告内容:
1、如何修改report.html中的Environment部分,可在conftest.py中实现:
def pytest_configure(config):
config._metadata['测试地址'] = '192.168.50.XXX'
报告结果变化:

2、如何修改report.html中的Summary部分,可在conftest.py中实现:
import pytest
from py._xmlgen import html @pytest.mark.optionalhook
def pytest_html_results_summary(prefix, summary, postfix):
prefix.extend([html.p("测试人: 龙雄")])
报告结果变化:

3、如何修改report.html中的results-table部分,可在conftest.py中实现:
from datetime import datetime
import pytest @pytest.mark.optionalhook
def pytest_html_results_table_header(cells):
cells.insert(2, html.th('Description'))
cells.insert(3, html.th('Time', class_='sortable time', col='time'))
# cells.insert(1,html.th("Test_nodeid"))
cells.pop() @pytest.mark.optionalhook
def pytest_html_results_table_row(report, cells):
cells.insert(2, html.td(report.description))
cells.insert(3, html.td(datetime.utcnow(), class_='col-time'))
# cells.insert(1,html.td(report.nodeid))
cells.pop() @pytest.mark.hookwrapper
def pytest_runtest_makereport(item, call):
outcome = yield
report = outcome.get_result()
report.description = str(item.function.__doc__)
report.nodeid = report.nodeid.encode("utf-8").decode("unicode_escape") #设置编码显示中文
报告结果变化:
注意:如果测试用例中,传递的@pytest.mark.parametrize中的参数是列表中带字典的方式,那么报告显示的结果将为:

若传递的@pytest.mark.parametrize中的参数是列表中带元祖或列表的方式(如: bdata = [(1, "升级专业版本"),(2, "官方网站")];bdata=[[1,2],[3,4]]),那么报告显示的结果将为:

所以本人之前一直不知道如何将我的这些测试数据展示到report table中,因为本人之前一直用的是字典的方式,今天发现原来传递的数据类型会影响报告的展示内容,不知是否还有其他更好的解决方式,
有的话请大家赐教
所以本人的解决方案是,将传递的列表数组存储为元祖的方式:
import pytest
from dotest import mytest
import json
import logging
import requests bdata = mytest()
s = requests.session()
logging.getLogger().setLevel(logging.INFO) lb = []
for i in bdata:
print(i)
print(i['url'])
yz = (i,i['url'],i['casename'])
lb.append(yz) @pytest.mark.parametrize("bdata,f,m", lb)
def testsingle(bdata,f,m):
'''登录模块'''
ip = bdata['ip']
url = bdata['url']
headers = json.loads(bdata['headers'])
checkpoint = bdata['checkpoint']
method = bdata['method']
casename = bdata['casename']
if bdata['datatype']=='json':
body = json.loads(bdata['body'])
result = s.request(method=method,url=ip+url,headers=headers,json=body)
r = json.loads(result.text)
assert checkpoint in r['message']
logging.info("pass "+casename +" "+url)
关于如何自定义修改pytest-html报告深度学习总结的更多相关文章
- 48.Odoo产品分析 (五) – 定制板块(3) – 修改文件和报告(1)
查看Odoo产品分析系列--目录 不管ERP系统中的内置报表有多完善,大多数的公司仍然需要对文档和报表进行一些自定义的修改. 这一章节将介绍如何对报表的页眉和页脚做自定义修改:odoo框架如何组织报 ...
- Unity3D ShaderLab 修改渲染队列进行深度排序
Unity3D ShaderLab 修改渲染队列进行深度排序 为了更深刻的理解透明度,我们还需要学习一下深度排序,简单来说就是物体被渲染的先后顺序. Unity允许我们通过代码来控制某个特定物体渲染到 ...
- cas sso单点登录系列4_cas-server登录页面自定义修改过程(jsp页面修改)
转:http://blog.csdn.net/ae6623/article/details/8861065 SSO单点登录系列4:cas-server登录页面自定义修改过程,全新DIY. 目标: ...
- 自定义修改Anaconda Jupyterlab Home目录
自定义修改Anaconda Jupyterlab Home目录 最近在使用Anaconda学习数据分析和机器学习,会使用到Jupyter,但是他默认目录是用户的目录,我并没有习惯将项目和资料放在C盘, ...
- js实现自定义修改网页中表格信息
项目中的打印页面,为提高用户体验,需要增自定修改表格内容的功能,以下是使用示意图(双击td标签部分的内容,可自定义修改): 以下是js插件源码,存为edit.js文件: var tbl, tbt; v ...
- Thinkphp框架中自定义修改success和error页面
Thinkphp框架中自定义修改success和error页面 Thinkphp框架的默认success和error太难看,可以自定义设置,步骤如下: (注意:TP原框架中的success跳转有问题, ...
- SSO单点登录系列4:cas-server登录页面自定义修改过程(jsp页面修改)
落雨 cas 单点登录 SSO单点登录系列4:cas-server登录页面自定义修改过程,全新DIY. 目标: 下面是正文: 打开cas的默认首页,映入眼帘的是满眼的中文and英文混杂体,作为一 ...
- python+selenium+pytest+html报告
背景:python+selenium+pytest+html报告 环境:我的是本机的Jenkins配置本机的代码 前提:要下载好HTML Publisher plugin插件[系统管理>管理插件 ...
- 吴裕雄--天生自然 神经网络人工智能项目:基于深度学习TENSORFLOW框架的图像分类与目标跟踪报告(续四)
2. 神经网络的搭建以及迁移学习的测试 7.项目总结 通过本次水果图片卷积池化全连接试验分类项目的实践,我对卷积.池化.全连接等相关的理论的理解更加全面和清晰了.试验主要采用python高级编程语言的 ...
随机推荐
- 【转】gdb的调试与使用
转载自:https://www.jianshu.com/p/7a06b0bda2d8 gdb的调试与使用 这篇应该是我见过的总结最详细的gdb调试指南了,这位博主是个很强的人,他的博客对萌新比较友好, ...
- vue阻止事件冒泡和默认事件
本文地址:https://www.cnblogs.com/guomin/p/9273862.html 原生js取消事件冒泡 try{ e.stopPropagation();//非IE浏览器 } ca ...
- Monkey小白入门篇
一.monkey简介 中文名:猴子 职业:压力测试小工具 用途:对待测Android应用程序进行压力测试,测试app是否会crash Android官方描述: The Monkey is a prog ...
- jenkins构建:通过testng.xml构建项目
1.项目的pom.xml中build下添加maven插件,xmlFileName为可变参数 2.jenkins新建maven项目 构建脚本: 原文:https://www.jianshu.com/p/ ...
- Spring配置文件中的那些标签
1. context:annotation-config 它的作用是隐式地向Spring容器注册AutowiredAnnotationBeanPostProcessor,CommonAnnotatio ...
- NOIP 2011 铺地毯
洛谷 P1003 铺地毯 洛谷传送门 JDOJ 1744: [NOIP2011]铺地毯 D1 T1 JDOJ传送门 Description 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看 ...
- CF1204D Kirk and a Binary String
题目链接 problem 给出一个长度为\(n(n\le 10^5)\)的只包含01的字符串.把尽可能多的1变为0,使得对于所有的\(l \in [1,n],r\in [l,n]\),区间\([l,r ...
- tomcat参数java_opts调整
启动文件修改 在windows环境下,tomcat下的~/bin/catalina.bat文件,在文件头部加入: set "JAVA_OPTS=%JAVA_OPTS% -server -Xm ...
- python xpath图片爬取
import requests from urllib.request import urlretrieve from lxml import etree headers = { 'User-Agen ...
- matplotlib画图相关
一. plt显示一副图像 1. import matplotlib.pyplot as plt 2. plt.figure() # 图像名称 3. plt.ims ...