Pytest钩子函数获取用例执行情况

一、背景:

我们平时使用pytest执行完接口自动化后,可能还要对接邮箱现在更多的是到企业微信、钉钉等发送用例执行情况给到同事,本篇主要介绍如何搜集用例的这些执行情况

二、钩子函数:

2.1、创建位置:

项目主路径下-创建conftes.py文件,这样不用做任何钩子函数自动加载

2.2、代码介绍:

在用例执行完成后会自动打印出结果

def pytest_terminal_summary(terminalreporter, exitstatus, config):
    '''
    收集用例执行结果
    :param terminalreporter:
    :param exitstatus:
    :param config:
    :return:
    '''
    print("捕捉用例的通过对象", len(terminalreporter.stats.get("passed", [])))
    print("捕捉用例的失败对象", len(terminalreporter.stats.get("failed", [])))
    print("捕捉用例的跳过对象", len(terminalreporter.stats.get("skipped", [])))
    faild_list = list()
    faild_object = terminalreporter.stats.get("passed", [])
    print("捕捉用例总数", terminalreporter._numcollected)
    print("捕捉所有对象", terminalreporter.stats)
    for i in faild_object:
        print("获取失败用例集对象i:", i)
        print("获取失败用例集对象名称location", i.location)
        faild_list.append(i.location[-1])
        print("获取失败用例集日志", i.longrepr)

2.3、按各域返回用例情况:

def pytest_terminal_summary(terminalreporter, exitstatus, config):
    '''
    收集用例执行结果
    :param terminalreporter:
    :param exitstatus:
    :param config:
    :return:
    '''
    print("捕捉用例的通过对象", len(terminalreporter.stats.get("passed", [])))
    print("捕捉用例的失败对象", len(terminalreporter.stats.get("failed", [])))
    print("捕捉用例的跳过对象", len(terminalreporter.stats.get("skipped", [])))
    passed_list = list()
    _list = []
    _list1 = []
    passed_object = terminalreporter.stats.get("passed", [])
    print("捕捉用例总数", terminalreporter._numcollected)
    print("捕捉所有对象", terminalreporter.stats)

    for i in passed_object:
        print("获取成功用例集对象i:", i)
        item2 = str(i).split("::")[0]
        if 'test_product/credit' in item2:
            _list.append(item2)
        if 'test_product/tax' in item2:
            _list1.append(item2)
        # _list.append(str(i).split("::")[0])
        print("获取成功用例集对象名称location", i.location)
        passed_list.append(i.location[0])
    print(_list)
    print(_list1)
    print(len(_list))
    print(len(_list1))
    print(passed_list)

在这里插入图片描述
返回情况:
在这里插入图片描述

三、pytest结合allure生成测试报告

3.1、用例执行情况查看:

可以结合生成的报告文件-data下的suites.json中获取执行详情进行解析后即可获得,也可以知道每个测试用例集下的情况
在这里插入图片描述


版权声明:本文为weixin_52358204原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。