最全pytest学习和使用-HTML报告如何生成?(pytest-html)_from py,2024年最新三年经验软件测试开发面经总结

29,514次阅读
没有评论

共计 5680 个字符,预计需要花费 15 分钟才能阅读完成。

最全 pytest 学习和使用 -HTML 报告如何生成?(pytest-html)_from py,2024 年最新三年经验软件测试开发面经总结
最全 pytest 学习和使用 -HTML 报告如何生成?(pytest-html)_from py,2024 年最新三年经验软件测试开发面经总结
最全 pytest 学习和使用 -HTML 报告如何生成?(pytest-html)_from py,2024 年最新三年经验软件测试开发面经总结

既有适合小白学习的零基础资料,也有适合 3 年以上经验的小伙伴深入学习提升的进阶课程,涵盖了 95% 以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

4 合并 css

  • 从生成的报告可以看出,除了 report.html 外,还有个文件style.css;
  • 这个文件是报告的样式,是独立的,那么我们分享报告的时候,就必须把这个样式也加上,比较麻烦:

最全 pytest 学习和使用 -HTML 报告如何生成?(pytest-html)_from py,2024 年最新三年经验软件测试开发面经总结

body {
	font-family: Helvetica, Arial, sans-serif;
	font-size: 12px;
	/* do not increase min-width as some may use split screens */
	min-width: 800px;
	color: #999;
}

h1 {
	font-size: 24px;
	color: black;
}

h2 {
	font-size: 16px;
	color: black;
}

p {color: black;}

a {color: #999;}

table {border-collapse: collapse;}

/******************************
 * SUMMARY INFORMATION
 ******************************/

#environment td {
	padding: 5px;
	border: 1px solid #E6E6E6;
}

#environment tr:nth-child(odd) {background-color: #f6f6f6;}

/******************************
 * TEST RESULT COLORS
 ******************************/
span.passed, .passed .col-result {color: green;}
span.skipped, span.xfailed, span.rerun, .skipped .col-result, .xfailed .col-result, .rerun .col-result {color: orange;}
span.error, span.failed, span.xpassed, .error .col-result, .failed .col-result, .xpassed .col-result  {color: red;}


/******************************
 * RESULTS TABLE
 *
 * 1. Table Layout
 * 2. Extra
 * 3. Sorting items
 *
 ******************************/

/*------------------
 * 1. Table Layout
 *------------------*/

#results-table {
	border: 1px solid #e6e6e6;
	color: #999;
	font-size: 12px;
	width: 100%
}

#results-table th, #results-table td {
	padding: 5px;
	border: 1px solid #E6E6E6;
	text-align: left
}
#results-table th {font-weight: bold}

/*------------------
 * 2. Extra
 *------------------*/

.log:only-child {height: inherit}
.log {
	background-color: #e6e6e6;
	border: 1px solid #e6e6e6;
	color: black;
	display: block;
	font-family: "Courier New", Courier, monospace;
	height: 230px;
	overflow-y: scroll;
	padding: 5px;
	white-space: pre-wrap
}
div.image {
	border: 1px solid #e6e6e6;
	float: right;
	height: 240px;
	margin-left: 5px;
	overflow: hidden;
	width: 320px
}
div.image img {width: 320px}
.collapsed {display: none;}
.expander::after {content: "(show details)";
	color: #BBB;
	font-style: italic;
	cursor: pointer;
}
.collapser::after {content: "(hide details)";
	color: #BBB;
	font-style: italic;
	cursor: pointer;
}

/*------------------
 * 3. Sorting items
 *------------------*/
.sortable {cursor: pointer;}

.sort-icon {
	font-size: 0px;
	float: left;
	margin-right: 5px;
	margin-top: 5px;
	/*triangle*/
	width: 0;
	height: 0;
	border-left: 8px solid transparent;
	border-right: 8px solid transparent;
}

.inactive .sort-icon {
	/*finish triangle*/
	border-top: 8px solid #E6E6E6;
}

.asc.active .sort-icon {
	/*finish triangle*/
	border-bottom: 8px solid #999;
}

.desc.active .sort-icon {
	/*finish triangle*/
	border-top: 8px solid #999;
}


  • 所以为了方便,我们把这个 css 样式合并到 html 里,命令如下:
pytest --html=report.html --self-contained-html

  • 再次运行报告查看下,此时只有 report.html 文件,且样式已经合并进来了:

最全 pytest 学习和使用 -HTML 报告如何生成?(pytest-html)_from py,2024 年最新三年经验软件测试开发面经总结

5 报告中的行显示设置

  • 默认生成功的报告中的所有行都是被展开的, 如图:

最全 pytest 学习和使用 -HTML 报告如何生成?(pytest-html)_from py,2024 年最新三年经验软件测试开发面经总结

  • 我们可以自定义显示的样式:
?collapsed=Passed,XFailed,Skipped

6 报告增强

详细参考官网文档:https://github.com/pytest-dev/pytest-html

6.1 自定义 css
  • 可以使用 --CSS 选项在命令行上传递自定义CSS
$ pytest --html=report.html --css=highcontrast.css --css=accessible.css

6.2 报告标题
  • 默认情况下,报告标题将是报告的文件名;
  • 您可以使用 pytest_html_report_title 钩子对其进行编辑:
def pytest_html_report_title(report):
    report.title = "My very own title!"

6.3 环境
  • Environment部分由 pytest-metadata 插件提供;
  • 可以通过 pytest_configurepytest_sessionfinish钩子访问;
  • 要在运行测试之前修改 Environment 部分,请使用pytest_configure
def pytest_configure(config):
    config._metadata["foo"] = "bar"

  • 要在测试运行后修改 Environment 部分,请使用pytest_sessionfinish
import pytest


@pytest.hookimpl(tryfirst=True)
def pytest_sessionfinish(session, exitstatus):
    session.config._metadata["foo"] = "bar"

请注意,在上面的示例中,@pytest.hookimpl(tryfirst=True)非常重要,因为这可以确保在任何其他插件(包括 pytest-html 和 pytest-metadata)运行之前尽最大努力运行 pytest_sessionfinish。如果省略了这一行,那么 Environment 表将不会更新,因为插件的 pytest_sessionfinish 将首先执行,因此不会接受您的更改。

除非元数据是集合.OrderedDict,否则生成的表将按字母顺序排序。

可以从环境表中编辑变量。重做的变量将显示其名称,但其值将灰显。这可以通过在 INI 配置文件(例如:pytest.INI)中设置 environment_table_redact_list 来实现。environment_table_redact_list 是正则表达式的行列表。与此列表中的正则表达式匹配的任何环境表变量都会对其值进行编校。

例如,以下命令将对与正则表达式 ^foo$、.*redact.* 或 bar 匹配的所有环境表变量进行编校:

[pytest]
environment_table_redact_list = ^foo$
    .*redact.*
    bar

6.4 其他摘要信息
  • 可以使用 pytest_html_results_Summary 挂钩编辑 Summary 部分:
from py.xml import html


def pytest_html_results_summary(prefix, summary, postfix):
    prefix.extend([html.p("foo: bar")])

6.5 Extra 内容
  • 可以通过在报告对象上创建“extra”列表来向 HTML 报告添加详细信息;
  • 以下是可以添加的extra 内容类型:
Type Example
Raw HTML extra.html('

Additional HTML

')

JSON extra.json({'name': 'pytest'})
Plain text extra.text('Add some simple Text')
URL extra.url('http://www.example.com/')
Image extra.image(image, mime_type='image/gif', extension='gif')
Image extra.image('/path/to/file.png')
Image extra.image('http://some_image.png')
  • 注意:从文件添加图像时,路径可以是绝对路径,也可以是相对路径;
  • 注意:当使用 --self-contained-html 时,作为文件或链接添加的图像可能无法按预期工作,有关详细信息,请参阅 Creating a self-contained report 一节。
  • 还有几种图像格式的方便类型:
Image format Example
PNG extra.png(image)
JPEG extra.jpg(image)
SVG extra.svg(image)
  • 以下示例使用 pytest_runtest_makereport 钩子添加了各种类型的附加功能,该钩子可以在 pluginconftest.py文件中实现:
import pytest


@pytest.hookimpl(hookwrapper=True)
def pytest_runtest_makereport(item, call):
    pytest_html = item.config.pluginmanager.getplugin("html")
    outcome = yield
    report = outcome.get_result()


![img](https://img-blog.csdnimg.cn/img_convert/ca2214c5655f96ca9a3eb435b7727bf7.png)
![img](https://img-blog.csdnimg.cn/img_convert/2289114d162fa01c39e8e7f38579102d.png)
![img](https://img-blog.csdnimg.cn/img_convert/6db031e7ad8b33972d24ed54a3f1ba4d.png)

** 既有适合小白学习的零基础资料,也有适合 3 年以上经验的小伙伴深入学习提升的进阶课程,涵盖了 95% 以上软件测试知识点,真正体系化!**

** 由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新 **

**[需要这份系统化的资料的朋友,可以戳这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**

port = outcome.get_result()


[外链图片转存中...(img-7Z8AEgZF-1715385717635)]
[外链图片转存中...(img-90WFiRec-1715385717635)]
[外链图片转存中...(img-PJ0Jb1lR-1715385717636)]

** 既有适合小白学习的零基础资料,也有适合 3 年以上经验的小伙伴深入学习提升的进阶课程,涵盖了 95% 以上软件测试知识点,真正体系化!**

** 由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新 **

**[需要这份系统化的资料的朋友,可以戳这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**

原文地址: 最全 pytest 学习和使用 -HTML 报告如何生成?(pytest-html)_from py,2024 年最新三年经验软件测试开发面经总结

    正文完
     0
    Yojack
    版权声明:本篇文章由 Yojack 于2024-09-28发表,共计5680字。
    转载说明:
    1 本网站名称:优杰开发笔记
    2 本站永久网址:https://yojack.cn
    3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
    4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
    5 本站所有内容均可转载及分享, 但请注明出处
    6 我们始终尊重原创作者的版权,所有文章在发布时,均尽可能注明出处与作者。
    7 站长邮箱:laylwenl@gmail.com
    评论(没有评论)