二、allure2报告中添加附件-日志

# -*- 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");

"""