pytest-html插件测试报告格式修改

2022-02-10  本文已影响0人  软件测试小白

pytest-html作为一款测试报告展示工具包,因其简单易用而备受欢迎。也有人因其不够美观而吐槽。其实它也提供了几个HOOK方法,可以供使用者对其内容进行自由的设置。

hook函数列表:

def pytest_html_report_title(report):

    """ Called before adding the title to the report """

def pytest_html_results_summary(prefix, summary, postfix):

    """ Called before adding the summary section to the report """

def pytest_html_results_table_header(cells):

    """ Called after building results table header. """

def pytest_html_results_table_row(report, cells):

    """ Called after building results table row. """

def pytest_html_results_table_html(report, data):

    """ Called after building results table additional HTML. """

具体的使用方法:

def pytest_html_report_title(report):

    """

    修改测试报告的标题

    :param report:

    :return:

    """

    report.title = "自动化项目测试报告"

def pytest_configure(config):

    # 添加接口地址与项目名称

    config._metadata["项目名称"] = "易牵星自动化系统"

    # 删除Java_Home

    config._metadata.pop("JAVA_HOME")

    config.user = User(config)

    config.pluginmanager.register(config.user)

@pytest.mark.optionalhook

def pytest_html_results_table_header(cells):

    """

    测试报告修改表头

    :param cells:

    :return:

    """

    cells.insert(2, html.th('Description'))

    cells.insert(1, html.th('Time', class_='sortable time', col='time'))

    # cells.pop()  #删除最后links列的内容

def pytest_html_results_summary(prefix, summary, postfix):

    """

      修改summary里面值

    """

    prefix.append(html.p("这里是前缀", class_="error"))

    postfix.append(html.p("这里是后缀\n\t"))

@pytest.mark.optionalhook

def pytest_html_results_table_row(report, cells):

    """

    修改测试报告每一项的值

    :param report: 每一个节点的值

    :param cells:

    :return:

    """

    cells.insert(2, html.td(report.__doc__))

    cells.insert(1, html.td(datetime.utcnow(), class_='col-time'))

    # cells.pop()  #删除最后links列的内容

def pytest_html_results_table_html(report, data):

    """

    修改测试报告的值

    :param report:  单个测试结果

    :param data:  单个测试结果的日志信息

    :return:

    """

    print(report)

    print(data)

各个模块的划分,里面每一个模块都可以根据自己的需求进行定制。同时是支持hmtl脚本的。如果需要修改样式可以修改:venv\Lib\site-packages\pytest_html\resources目录下的样式文件,通过类似 prefix.append(html.p("这里是前缀", class_="error"))的方式进行引用。

上一篇下一篇

猜你喜欢

热点阅读