• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

Pytest框架: - Hooks函数统计测试结果

武飞扬头像
SitVen
帮助1

用例执行完成后我们希望能获取到执行结果,这样方便我们快速统计用例的执行情况
也可以把获取到的结果当成总结报告,发邮件或者钉钉群通知的时候可以先统计测试结果,再加上allure报告。这样子测试结果就很直观

pytest_terminal_summary

关于TerminalReporter类可以在_pytest.terminal中查看到

  1.  
    from _pytest import terminal
  2.  
    pytest_terminal_summary(terminalreporter, exitstatus, config)
  3.  
    最后的结果汇总,可以拿到所有的执行结果
  4.  
    参数:
  5.  
    - terminalreporter (_pytest.terminal.TerminalReporter) – 内部使用的终端测试报告对象
  6.  
    - exitstatus (int) – 返回给操作系统的返回码
  7.  
    - config(_pytest.config.Config) - pytest config对象

所有测试执行完毕之后,返回exit status之前的阶段。会调用pytest_terminal_summaryterminal打印一些summary信息,比如pass、fail、error数量之类的总结信息

conftest.py中写个pytest_terminal_summary函数收集测试结果

  1.  
    #!/usr/bin/python3
  2.  
    # coding=utf-8
  3.  
    # Author: 文
  4.  
     
  5.  
    def pytest_terminal_summary(terminalreporter, exitstatus, config):
  6.  
    """统计次数结果"""
  7.  
    case_dict = {}
  8.  
    case_dict["case_pass"] = len(terminalreporter.stats.get('passed', [])) # 通过
  9.  
    case_dict["case_fail"] = len(terminalreporter.stats.get('failed', [])) # 失败
  10.  
    case_dict["case_error"] = len(terminalreporter.stats.get('error', [])) # 错误
  11.  
    case_dict["case_skip"] = len(terminalreporter.stats.get('skipped', [])) # 跳过
  12.  
    case_dict["case_xfail"] = len(terminalreporter.stats.get('xfailed', [])) # 标记失败-执行失败
  13.  
    case_dict["case_xpass"] = len(terminalreporter.stats.get('xpassed', [])) # 标记失败-执行成功
  14.  
    case_dict["case_rerun"] = len(terminalreporter.stats.get('rerun', [])) # 失败重跑总次数
  15.  
    case_dict["case_time"] = round(time() - terminalreporter._sessionstarttime, 2) # 测试用时,保留两位
  16.  
    print(case_dict)
学新通

执行结果如下:

  1.  
    {'case_pass': 67, 'case_fail': 8, 'case_error': 0, 'case_skip': 2, 'case_xfail': 1, 'case_xpass': 1, 'case_rerun': 26, 'case_time': 25.95}
  2.  
    =============================================== short test summary info ===============================================
  3.  
    pytest_assume.plugin.FailedAssumption:
  4.  
    ====================== 8 failed, 67 passed, 2 skipped, 1 xfailed, 1 xpassed, 26 rerun in 25.97s =======================

在通过pytest-xdist多进程执行测试用例时,会执行进程数 1次;即子进程数 最后合计的

这篇好文章是转载于:编程之路

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 编程之路
  • 本文地址: /boutique/detail/tanhhgbcge
系列文章
更多 icon
同类精品
更多 icon
继续加载