本文為霍格沃茲測試開發學社學員學習筆記分享
原文連結:allure2 添加用例标題、用例步驟 L2 - 學習筆記 - 測試人社群
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 的三種使用方式:
- 直接使用 @allure.title 為測試用例自定義标題。
- @allure.title 支援通過占位符的方式傳遞參數,可以實作測試用例标題參數化,動态生成測試用例标題。
- 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