pytest中钩子函数的使用

收集测试结果:

2. pytest_terminal_summary(terminalreporter, exitstatus,config)

在测试执行完毕后,用于生成并显示最终的测试摘要信息到终端,你可以实现自定义的测试报告汇总和显示。

例如:你可以在此钩子函数中计算测试用例覆盖率、输出额外的统计信息

在conftest.py文件中使用,所有的测试用例执行完成后,自动收集测试结果

python 复制代码
def pytest_terminal_summary(terminalreporter, exitstatus, config):
    """
    函数:pytest钩子函数,固定写法,每次pytest测试完成后,会自动收集测试结果
    :param terminalreporter:内部终端报告对象,对象的status属性
    :param exitstatus:返回给操作系统的返回码
    :param config:pytest配置的config对象
    :return:
    """
    # 打印执行结果
    result = terminalreporter.stats
    # 获取测试用例总数
    case_all_num = terminalreporter._numcollected
    if case_all_num > 0:
        # 获取成功的用例数
        case_pass_num = len(terminalreporter.stats.get('passed', []))
        # 获取失败的用例数
        case_failed_num = len(terminalreporter.stats.get('failed', []))
        # 获取错误的用例数
        case_error_num = len(terminalreporter.stats.get('error', []))
        # 获取跳过的用例数
        case_skipped_num = len(terminalreporter.stats.get('skipped', []))
        # 获取执行时长
        # round: 四设五入保留小数位数
        run_time = round(time.time() - terminalreporter._sessionstarttime, 2)
        formt_run_time = format_datatime(run_time)
        # 统计测试用例-通过率
        tgl_str = None
        if case_all_num > 0:
            tgl = int(case_pass_num) / int(case_all_num)
            tgl_str = "{:.2%}".format(tgl)

        # 测试结果写入txt文档
        result = os.path.join("./report", "result.txt")

        # 写入测试结果到reports下的result.txt文件
        with open(result, "w") as f:
            f.write(f"本次接口自动化测试结果如下(请注意失败及错误的接口):\n")
            f.write(f"用例总数:{case_all_num}个\n")
            f.write(f"通过数:{case_pass_num}个\n")
            f.write(f"失败数:{case_failed_num}个\n")
            f.write(f"跳过数:{case_skipped_num}个\n")
            f.write(f"错误数:{case_error_num}个\n")
            f.write(f"成功率:{tgl_str}个\n")
            f.write(f"用例执行时长:{run_time}秒 ({formt_run_time})")

        summary = str()
        with open(result, 'r') as f:
            for i in f.readlines():
                summary = f'{summary}' + i
        mylog.info(summary)

参考博文:

pytest合集(9)--- Hook钩子函数_pytest钩子函数-CSDN博客

相关推荐
未定义.2211 天前
第3篇:UI自动化核心操作:输入、点击、弹窗、下拉框全场景实战
运维·python·ui·自动化·jenkins·集成测试·pytest
未定义.2212 天前
第1篇:0基础入门!Python+Selenium环境搭建与第一个自动化脚本
python·功能测试·selenium·自动化·jenkins·pytest
Lucifer__hell2 天前
【Pytest】笔记
笔记·pytest·测试
旦莫2 天前
使用OCR加持的APP自动化测试
python·测试开发·自动化·ocr·pytest·ai测试
工会主席-阿冰2 天前
在pytest-html页面,显示测试用例日志
pytest
小二·3 天前
Python Web 开发进阶实战:全链路测试体系 —— Pytest + Playwright + Vitest 构建高可靠交付流水线
前端·python·pytest
云半S一4 天前
pytest的学习过程
经验分享·笔记·学习·pytest
0和1的舞者4 天前
GUI自动化测试详解(三):测试框架pytest完全指南
自动化测试·python·测试开发·自动化·pytest·测试
我的xiaodoujiao4 天前
使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 39--生成 Allure测试报告
python·学习·测试工具·pytest