动态用例标题
- allure.dynamic.title('动态用例标题')
- 必须放在函数、方法之内
- 可以使用参数化的参数
- 每条用例执行一次
- 会覆盖@allure.title
动态用例描述
- allure.dynamic.description('动态用例描述')
- 必须放在函数、方法之内
- 可以使用参数化的参数
- 每条用例执行一次
- 会覆盖@allure.description
测试步骤
- with allure.step('测试小步骤名'):
不可省略的其他子步骤代码- 这种写法必须放在函数或方法之内
- 支持print(无需-s参数)、日志
- 每条用例执行一次
- 不支持allure.dynamic.step的写法
编写测试代码文件ceshi_calc_as02.py,测试add、sub函数,加入动态用例标题、用例描述、测试大步骤、测试小步骤
add_cases=pandas.read_excel('add_sub.xlsx').values.tolist()
@pytest.mark.parametrize('case_id, case_title, module, function, a, b, expect, severity', add_cases)
@allure.epic('计算器epic')
@allure.suite('计算器加法测试集')
@allure.step('测试加法-大步骤')
def test_add(case_id, case_title, module, function, a, b, expect, severity):
allure.dynamic.feature(module+'-feature')
allure.dynamic.story(function+'-story')
allure.dynamic.title(case_title)
allure.dynamic.description(case_id+'-'+case_title)
with allure.step('调用add被测函数'):
actual=add(a, b)
with allure.step('断言'):
assert actual==expect, f'预期结果:{a} + {b} = {expect},实际结果:{a} + {b} = {actual}'
测试报告Behavior部分
编写测试代码文件ceshi_calc_div02.py,测试div函数,加入动态用例标题、用例描述、测试大步骤、测试小步骤
div_cases=pandas.read_excel('div.xlsx').values.tolist()
@pytest.mark.parametrize('case_id, case_title, module, function, a, b, expect, severity', div_cases)
@allure.epic('计算器epic')
@allure.suite('计算器除法测试集')
@allure.step('除法-大步骤')
def test_div(case_id, case_title, module, function, a, b, expect, severity):
allure.dynamic.feature(module+'-feature')
allure.dynamic.story(function+'-story')
allure.dynamic.title(case_title)
allure.dynamic.description(case_id+'-'+case_title)
with allure.step('调用被测div函数'):
actual=div(a, b)
with allure.step('断言'):
assert actual==expect, f'预期结果:{a} + {b} = {expect},实际结果:{a} + {b} = {actual}'
小结
- allure.dynamic.title、allure.dynamic.description
- __doc__不被allure支持
- @allure.step、with allure.step
- 不支持allure.dynamic.step的写法