一、背景:
我们平时使用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版权协议,转载请附上原文出处链接和本声明。