• 欢迎光临~

Allure08-动态用例优先级与链接

开发技术 开发技术 2022-12-31 次浏览

动态用例优先级

  • 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部分

Allure08-动态用例优先级与链接

测试报告Severity部分

Allure08-动态用例优先级与链接

测试报告链接部分

Allure08-动态用例优先级与链接

编写测试代码文件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
    • 两个链接地址不能相同,否则只显示先写的链接地址
程序员灯塔
转载请注明原文链接:Allure08-动态用例优先级与链接
喜欢 (0)