28-pytest-生成HTML报告

Posted 爱学习de测试小白

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了28-pytest-生成HTML报告相关的知识,希望对你有一定的参考价值。

生成html报告


前言

  • 本篇来学习使用pytest-html插件生成HTML报告

安装包

pip install pytest-html

使用示例

  • –html=report.html : css 文件和html报告是分开的
# -*- coding: utf-8 -*-
# @Time    : 2022/3/21
# @Author  : 大海

import os


def test_add():
    a = 1 + 2
    assert a == 3


if __name__ == '__main__':
    # --html=报告名.html   css和html 是分开的
    os.system('pytest -s test_52.py --html=report.html')
  • –self-contained-html : 合并css 到html报告中
# -*- coding: utf-8 -*-
# @Time    : 2022/3/21
# @Author  : 大海

import os


def test_add():
    a = 1 + 2
    assert a == 3


if __name__ == '__main__':
    # --self-contained-html  css样式合并到html中
    os.system('pytest -s test_52.py --html=report.html --self-contained-html')
  • 查看HTML报告

修改HTML报告

  • 添加描述(Description)列,添加可排序时间(Time)列,并删除链接(Link)列
  • 新建conftest.py文件(文件名固定,不要改),代码如下
# -*- coding: utf-8 -*-
# @Time    : 2022/3/21
# @Author  : 大海

from datetime import datetime
from py.xml import html
import pytest

@pytest.mark.optionalhook
def pytest_html_results_table_header(cells):
    cells.insert(2, html.th('Description'))
    cells.insert(-1, html.th('Time', class_='sortable time', col='time'))
    cells.pop()

@pytest.mark.optionalhook
def pytest_html_results_table_row(report, cells):
    cells.insert(2, html.td(report.description))
    cells.insert(-1, html.td(datetime.utcnow(), class_='col-time'))
    cells.pop()

@pytest.mark.hookwrapper
def pytest_runtest_makereport(item, call):
    outcome = yield
    report = outcome.get_result()
    report.description = str(item.function.__doc__)
  • 测试方法文件 test_53.py
# -*- coding: utf-8 -*-
# @Time    : 2022/3/21
# @Author  : 大海

import os
import time


def test_add():
    """验证1+2等于3"""
    a = 1 + 2
    time.sleep(2)
    assert a == 3


if __name__ == '__main__':
    os.system('pytest -s test_53.py --html=./report/report.html --self-contained-html')
  • 查看HTML报告

以上是关于28-pytest-生成HTML报告的主要内容,如果未能解决你的问题,请参考以下文章

Beyond Compare 3在比较HTML后,生成的报告中代码不换行

Jmeter生成聚合报告及html报告

Appium+Python之生成html测试报告

Rstudio怎么生成html文件 Rstudio生成html报告方法介绍

从 JMETER 中的 JTL 文件生成 HTML 报告

JMeter生成HTML性能报告