Allure2新增用例標題、用例步驟

霍格沃兹测试开发学社發表於2024-05-14

1、Allure2報告中新增用例標題

Allure 用法

方法名 方法引數 引數說明
@allure.epic() epic 描述 敏捷裡面的概念,定義史詩,往下是 feature
@allure.feature() 模組名稱 功能點的描述,往下是 story
@allure.story() 使用者故事 使用者故事,往下是 title
@allure.title(用例的標題) 用例的標題 重新命名 html 報告名稱
@allure.step() 操作步驟 測試用例的步驟
@allure.testcase() 測試用例的連結地址 對應功能測試用例系統裡面的 case
@allure.issue() 缺陷 對應缺陷管理系統裡面的連結
@allure.description() 用例描述 測試用例的描述
@allure.severity() 用例等級 blocker,critical,normal,minor,trivial
@allure.link() 連結 定義一個連結,在測試報告展現
@allure.attachment() 附件 報告新增附件

Allure2 報告中新增用例標題

應用場景:為了讓生成的測試報告便於閱讀,可以為每條用例新增一個便於閱讀的標題(可以使用中文標題)。生成的報告展示用例時,就會以設定的標題名展示出來。

Allure2 報告中新增用例標題

  • 透過使用裝飾器 @allure.title 可以為測試用例自定義一個可閱讀性的標題。

  • allure.title 的三種使用方式:

    1. 直接使用 @allure.title 為測試用例自定義標題。
    2. @allure.title 支援透過佔位符的方式傳遞引數,可以實現測試用例標題引數化,動態生成測試用例標題。
    3. allure.dynamic.title 動態更新測試用例標題。

Allure2 報告直接設定標題

  • 方法一:直接使用裝飾器。
import allure
import pytest

@allure.title("自定義測試用例標題")
def test_with_title():
    assert True

Allure2 報告引數化設定用例標題

  • 方式二:透過佔位符的方式傳遞引數,可以實現測試用例標題引數化,動態生成測試用例標題。
import allure
import pytest

@allure.title("引數化用例標題:引數一:{param1} ,引數二: {param2}")
@pytest.mark.parametrize("param1, param2, expected", [
    (1, 1, 2),
    (0.1, 0.3, 0.4)
])
def test_with_parametrize_title(param1, param2, expected):
    assert param1 + param2 == expected

Allure2 報告動態更新測試用例標題

  • 方式三:動態更新測試用例標題。
@allure.title("原始標題")
def test_with_dynamic_title():
    assert True
    allure.dynamic.title("更改後的新標題")

2、Allure2報告中新增用例步驟

Allure2 報告中新增用例步驟

應用場景:編寫自動化測試用例的時候經常會遇到需要編寫流程性測試用例的場景,一般流程性的測試用例的測試步驟比較多,我們在測試用例中新增詳細的步驟會提高測試用例的可閱讀性。

Allure2 報告中新增用例步驟

  • Allure 支援兩種方法:

    • 方法一:使用裝飾器定義一個測試步驟,在測試用例中使用。
    • 方法二:使用 with allure.step() 新增測試步驟。

Allure2 報告裝飾器新增用例步驟

  • 方法一:使用裝飾器定義一個測試步驟,在測試用例中使用。
# 方法一:使用裝飾器定義一個測試步驟,在測試用例中使用
import allure
import pytest

@allure.step
def simple_step1(step_param1, step_param2 = None):
    '''定義一個測試步驟'''
    print(f"步驟1:開啟頁面,引數1: {step_param1}, 引數2:{step_param2}")

@allure.step
def simple_step2(step_param):
    '''定義一個測試步驟'''
    print(f"步驟2:完成搜尋 {step_param} 功能")

@pytest.mark.parametrize('param1', ["pytest", "allure"], ids=['search pytest', 'search allure'])
def test_parameterize_with_id(param1):
    simple_step2(param1)


@pytest.mark.parametrize('param1', [True, False])
@pytest.mark.parametrize('param2', ['value 1', 'value 2'])
def test_parametrize_with_two_parameters(param1, param2):
    simple_step1(param1, param2)

@pytest.mark.parametrize('param2', ['pytest', 'unittest'])
@pytest.mark.parametrize('param1,param3', [[1,2]])
def test_parameterize_with_uneven_value_sets(param1, param2, param3):
    simple_step1(param1, param3)
    simple_step2(param2)

Allure2 報告中新增用例步驟

  • 方法二:使用 with allure.step() 新增測試步驟。
# 方法二:使用 `with allure.step()` 新增測試步驟
@allure.title("搜尋用例")
def test_step_in_method():
    with allure.step("測試步驟一:開啟頁面"):
        print("操作 a")
        print("操作 b")

    with allure.step("測試步驟二:搜尋"):
        print("搜尋操作 ")

    with allure.step("測試步驟三:斷言"):
        assert True

相關文章