pytest html测试报告,pytest-html
本文主要为大家介绍pytest生成简单的自定义测试结果html报告。有需要的朋友可以借鉴一下,希望能有所帮助。祝大家进步很大,早日升职加薪。
00-1010报表生成介绍,报表生成效果如下:修改报表,修改环境,修改结果,生成效果报表后记
目录
Pytest-HTML是一个插件。pytest用于生成测试结果的HTML报告。
简介
写一个简单的例子生成报告看看。
生成报告
这次主要是对环境和结果部分进行修改和配置,使列表部分显示的数据更加清晰,并增加和删除列数据。
生成报告效果如下
这里,我们来介绍一下文件conftest.py它的主要功能如下:
1.存储您的夹具功能。2.在里面写自己的本地插件,比如常见用例的前后部分。可以在该文件中执行数据清理。
修改报告
主要分为添加配置或删除配置:
def pytest_configure(配置):
#添加配置
配置。_metadata[项目名称]=测试报告
#删除配置
配置。_metadata.pop(JAVA_HOME )
配置。_metadata.pop(插件)
配置。_metadata.pop(包)
配置。_metadata.pop(平台)
修改 Environment
从上面生成的报告列表中,我们可以看到数据主要分为以下几列:结果、测试、链接和持续时间。其实可以看出,这里所有的数据都不包含我们的测试数据,所以我们无法直观的看到输入输出结果。
进行以下优化:
1.删除“测试”和“链接”列。2.添加几列来显示参数化中的内容,例如用例编号、输入和输出。3.修改显示用例执行结果的细节中的内容。基于以上需求,我们需要在报告中添加我们自己的测试数据显示,所以我们需要添加一个全局变量来记录在执行中的一个案例以供调用。
创建全局变量:
#定义一个全局变量来存储内容
global_data={}
@ pytest . fixture(scope= function )
定义集合_全局_数据():
设置用于关联参数的全局变量。
:返回:
def _set_global_data(key,value):
global_data[key]=值
产量_集合_全局_数据
global_data.clear()
修改我们的用例函数,将测试数据添加到全局变量中。
@user2ize(data ,case_list)
定义测试用例(数据,设置全局数据):
set_global_data(id ,data.get(id ))
set_global_data(method ,data.get(method ))
set_global_data(case_input ,data.get(case_input ))
set_global_data(case_output ,data.get(case_output ))
尝试:
assert data . get( case _ input )==data . get( case _ output )
除了AssertionError:
Set_global_data(error_step ,断言失败)
上升
在conftest.py文件中添加和删除列。
@user3hook
def pytest _ html _ results _ table _ header(单元格):
更改标题信息
:参数单元格:
:返回:
Cells.insert(1,html.th(用例ID ,class_=可排序,col=id ))
Cells.insert(2,html.th (method ,class_=sortable ,col=method ))
Cells.insert(3,html.th (input ,class _= sortable ,col= case _ input ))
Cells.insert(4,html.th (output ,class _= sortable ,col= case _ output ))
Cells.pop(-1) #删除链接
Cells.pop(-2) #删除测试
@user4hook
def pytest _ html _ results _ table _ row(单元格):
更改表中的数据信息
cells.insert(1,html.td(global_data.get(id ))
cells.insert(2,html . TD(global _ data . get( method ))
cells.insert(3,html . TD(global _ data . get( case _ input ))
cells.insert(4,html . TD(global _ data . get( case _ output ))
Cells.pop(-1) #删除链接
Cells.pop(-2) #删除测试
修改conftest.py文件中执行结果的显示细节内容。
@user5hook
def pytest _ html _ results _ table _ html(报表,数据):
如果报告失败:
del数据[:]
Data.append(html.span(f 失败步骤: { global _ data . get( error _ step )} n输出结果3360 { global _ data . get( case _ output )} ,
class_=失败日志))
elif report.passed:
del数据[:]
data . append(html . div(f output result : { global _ data . get( case _ output )} ,class _= successlog ))
修改 Results
你可以通过查看现在生成的报告内容,清楚地看到测试数据,并且它与我们的用例数据相关。
生成效果报告
目前,报告中显示的数据只是简单的更改。有兴趣可以查一下官方文件学习一下。
https://docs . pytest . org/en/latest/reference/reference . html # hooks
这就是pytest生成简单的定制测试结果html报告的细节。更多关于pytest生成自定义测试html的信息,请关注盛行IT软件开发工作室的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。