动态用例优先级
- allure.dynamic.severity(用例优先级)
- 可以使用参数化的参数
- 只能放到函数和方法中
- 对于一个子功能或测试需求的每一条用例,都可以有自己的severity
- 写法
- allure.severity_level.CRITICAL
- BLOCKER、CRITICAL、NORMAL、MINOR、TRIVIAL
动态缺陷链接
- allure.dynamic.issue('缺陷链接', name='报告中的链接文字')
- 链接文字中可以使用参数化的参数
- 只能放入函数和方法中
- 对于一个子功能或测试需求的每一条用例,都可以有自己的issue
- 不会覆盖@allure.issue
动态用例链接
- allure.dynamic.testcase('用例链接', name='报告中的链接文字')
- 链接文字中可以使用参数化的参数
- 只能放入函数和方法中
- 对于一个子功能或测试需求的每一条用例,都可以有自己的testcase
- issue和testcase的链接地址不能相同,否则只显示一个先写的链接
- 不会覆盖@allure.testcase
- 允许多个链接(含issue和testcase)共存
- issue和testcase链接,在函数内部先写的先显示
编写测试代码文件ceshi_calc_as03.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.issue('http://www.baidu.com', '所有加法缺陷的链接地址')
@allure.testcase('http://www.baidu.com', '所有加法用例的链接地址')
def test_add(case_id, case_title, module, function, a, b, expect, severity):
allure.dynamic.severity(severity)
allure.dynamic.testcase('http://www.baidu.com/?id='+case_id, f'{case_id}-{case_title}-用例链接')
with allure.step('调用add被测函数'):
actual=add(a, b)
with allure.step('断言'):
passed=actual==expect
if not passed:
allure.dynamic.issue('http://www.baidu.com/?case_id='+case_id, f'{case_id}-{case_title}-缺陷链接')
assert passed, f'预期结果:{a} + {b} = {expect},实际结果:{a} + {b} = {actual}'
测试报告Severity部分
测试报告Severity部分
测试报告链接部分
编写测试代码文件ceshi_calc_div03.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)
def test_div(case_id, case_title, module, function, a, b, expect, severity):
allure.dynamic.severity(severity)
allure.dynamic.testcase('http://www.baidu.com/?case_id='+case_id, f'{case_id}-{case_title}-用例链接')
with allure.step('调用被测div函数'):
actual=div(a, b)
with allure.step('断言'):
passed=actual==expect
if not passed:
allure.dynamic.issue('http://www.baidu.com/?id='+case_id, f'{case_id}-{case_title}-缺陷链接')
assert passed, f'预期结果:{a} + {b} = {expect},实际结果:{a} + {b} = {actual}'
小结
- allure.dynamic.severity
- allure.dynamic.issue、allure.dynamic.testcase
- 两个链接地址不能相同,否则只显示先写的链接地址