allure报告的定制化

最近在定制化allure报告,一个testcase函数会测试很多条用例,而每条用例的级别不一样,就发现一个可以利用@pytest.mark.parametrize循环传参进行控制allure报告的方法,分享一下

第一种方法:写在函数里面(推荐),这种方法的好处是可以把测试用例完全分离出去,title,severity等方法直接从用例中获取,可操作性爆表;缺点是测试用例重复性比较多

@pytest.mark.parametrize('index,title,severity', list(range(len(testdata))))
def test_001(index):
    allure.dynamic.title(title)# 可循环获取testdata中的值,实现变量传参
    allure.dynamic.feature('功能模块')
    allure.dynamic.story('功能名称')
    allure.dynamic.description('测试用例描述')
    allure.dynamic.severity(severity)# 可循环获取testdata中的值,实现变量传参
    allure.dynamic.tag('p0')

第二种方法:作为装饰器(看需求选择),好处是显着逼格很高,对每一个模块统一命名,测试用例中某些重复的比较少;缺点是没办法对每一个测试用例进行级别控制,并在allure报告中显示出来

@allure.feature('通用基础业务支持')
@allure.story('1000: 请求建立连接')
@allure.severity('critical')# 不能循环从testdata中取参
@allure.title('{title}')# 可循环获取testdata中的值,实现变量传参
@pytest.mark.parametrize('index,title', list(range(len(testdata))))
def test_001(index,tilte):
    pass

第三种方法:上面两种方法综合使用,代码和用例结合,具体就见仁见智了

你可能感兴趣的:(软件测试,allure,title,serverity,parametrize)