allure-pytest生成测试报告

allure-pytest生成测试报告

if __name__ == "__main__":
    pytest.main(["--alluredir", "allure_results"])   # 生成测试数据,allure_results为生成的路径

    os.system(r'allure generate --clean ./allure_results -o ./allure_report')  # 根据测试数据生成测试报告 

参数说明:

allure generate:是allure的命令行工具的命令,用于根据测试结果数据生成allure报告
--clean:是一个选项,在生成报告之前先清理输出目录,确保报告是最新的
/.allure_results:存储测试结果数据的目录,告诉allure工具从该目录中读取测试结果数据
-o ./allure_report:指定生成的allure测试报告输出的目录。allure_report为自定义目录

 

测试报告展示

allure-pytest的行为驱动标记

feature:feature注解标记测试用例所属的功能或模块。

story:story注解进一步细分feature,描述测试用例所属的具体场景。

代码演示:

import allure
import pytest


@allure.feature("用户管理")
@allure.story("创建用户")
def test_case01():
    assert True


@allure.feature("用户管理")
@allure.story("删除用户")
def test_case02():
    assert False

allure-pytest的步骤管理 

step:allure.step装饰器定义步骤

代码演示

@allure.step("步骤1")
def step01():
    print("步骤1")


@allure.step("步骤2")
def step02():
    print("步骤2")


@allure.step("步骤3")
def step03():
    print("步骤3")

def test_case1():
    step01()
    step02()
    step03()
    assert True

 

allure-pytest在报告中添加图片

@allure.step("上传图片")
def step_upload_image():
    image_path = "test_image.jpg"
    with open(image_path, "rb") as image_file:
        allure.attach(image_file.read(), name="uploaded image", attachment_type=allure.attachment_type.PNG)

allure-pytest异常时添加图片

@pytest.hookimpl(hookwrapper=True)
def pytest_runtest_makereport(item, call):
    outcome = yield
    report = outcome.get_result()
    if report.when == "call":  # 过滤前置,后置,只保留测试用例
        if report.outcome != "passed":  # 过滤掉pass的用例
            image_path = "test_image.jpg"
            with open(image_path, "rb") as image_file:
                allure.attach(image_file.read(),
                              name="uploaded Image",
                              attachment_type=allure.attachment_type.JPG
                              )

 

 

allure的一些方法的说明

allure.dynamic.title(“测试用例-登录成功”)

image

with allure.step('测试步骤'):

image

 

posted @ 2025-06-23 21:46  邵杠杠  阅读(42)  评论(0)    收藏  举报