保存pytest的执行日志;在日志中显示当前是第几次执行
1、在本地保存执行日志:
在终端中执行时因为指定了-s参数,所以会打印相关信息,可以帮助我们后续定位问题:
但是显示在终端时后面无法查看,所以需要把执行日志保存在本地,使用tee 或 重定向符号>,这里使用的是tee命令:
pytest -q -s -ra --count=60 test_open_stream.py --alluredir=./report/CXL | tee pytest_log.txt
这样本地会生成日志文件,每次执行前不需要清除文件内容,下次执行测试脚本是会自动覆盖掉之前的内容,所以需要做好保存工作。
2、在日志中显示当前执行的次数,方便跟allure报告及生成的excel统计相对应查问题:
pytest提供了一些钩子函数,例如,pytest_runtest_call,在测试运行时自动记录每次执行的次数,在 conftest.py 中使用如下函数,实现计数逻辑。
(1)这个函数的名称是固定的,不能改变;
(2)这个函数不需要显式调用,pytest会自动调用;
# 全局计数器
counter = {"count": 0}
@pytest.hookimpl(tryfirst=True)
def pytest_runtest_call(item):
count['count'] += 1
print(f"\n当前是第 {count['count']} 次执行\n")
打印信息如下: