# -*- coding: utf-8 -*-
# @Time : 2023/7/10 18:20
# @Author : yanfa
# @user : yanfa
# @File : test_attach_for_log.py
# @remark: 添加附件-log
""""""
import allure
from thematic_courses.pytest_and_allure.allure2_L3.log_util import logger
"""一、Allure2 报告中添加附件(日志)应用场景
应用场景:报告中添加详细的日志信息,有助于分析定位问题
解决方案:
python:使用python自带的logging模块生成日志,日志会自动添加到测试报告中,
java:直接调用注释或者调用方法添加
二、Allure2 报告中添加日志 - Python
日志配置,在测试报告中使用 logger 对象生成对应级别的日志。
用法:代码输出到用例详情中
运行用例: pytest --alluredir=./results --alluredir(注意不要加-vs)
日志展示在 Test body 标签下,标签下可展示多个子标签代表不同的日志输出渠道:
log 子标签:展示日志信息。
stdout 子标签:展示 print 信息。
stderr 子标签:展示终端输出的信息
三、Allure2 报告中添加日志展示功能禁用 - Python
禁用日志,可以使用命令行参数控制 --allure-no-capture
例子:
pytest --alluredir=./results --clean-alluredir --allure-no-capture
pytest --alluredir=./results --clean-alluredir --capture=no
"""
# 例子2:
@allure.feature("功能模块2")
class TestWithLogger:
@allure.story("子功能1")
@allure.title("用例1")
def test_case1(self):
# log 子标签:展示日志信息。
logger.info("用例1的info级别的日志")
logger.debug("用例1的debug级别的日志")
logger.warning("用例1的warning级别的日志")
logger.error("用例1的error级别的日志")
logger.fatal("用例1的fatal级别的日志")
# stdout 子标签:展示 print 信息。
print("这是stdout日志")
# stderr 子标签:展示终端输出的信息
assert 1==2
"""四、Allure2 添加附件(日志)实现方法 - Java
Allure 支持两种方法:
- 注解方式添加。 - String类型添加。 - byte[]类型添加。
2) 调用方法添加。 - String类型添加。 - InputStream类型添加。
日志文件为String类型。 java Allure.addAttachment("描述信息", "text/plain", 文件读取为String,"txt");
日志文件为InputStream流。 java Allure.addAttachment( "描述信息","text/plain", Files.newInputStream(文件Path), "txt");
"""