1.使用参数化提供的参数,作为标题
import pytest import allure import os get_data=[(3,4),(10,20)] @allure.story('测试模块') @allure.title('测试用例请求参数为:{a}的case') @allure.step('step测试用例请求参数为:{a}的case') @pytest.mark.parametrize('a,b',get_data) def test_allure(a,b): ''' 第一种allure报告提供测试title标题的方式:直接使用 '{a}',带上我们的参数名称,记住不能使用‘f’ :param a: :param b: :return: ''' assert a+b >6 print(a+b) if __name__ == '__main__': pytest.main(['test_demo.py', '-s', r'--alluredir=C:Usersxibo.zhuworkmyselfgitdemozhuxibo_demo_43project_SZcase_data emp eport','--clean-alluredir']) # Jenkins执行的时候不需要此行代码 os.system(r'allure serve C:Usersxibo.zhuworkmyselfgitdemozhuxibo_demo_43project_SZcase_data emp eport')
2. 第二种方法:使用装饰器
自定义标题
import pytest import os def dynamic_report(caseName,target): ''' 带参装饰器 :param target: 装饰器传进来的参数 :return: ''' def decorate(fun): @functools.wraps(fun) def inner(*args,**kwargs): # print('增加自定义测试用例标题',target) fun(*args,**kwargs) #增加自定义测试用例标题 # print('增加自定义测试用例标') #target指定使用什么参数来定义用例标题 title = kwargs.get(target,'未定义标题') allure.dynamic.title(caseName+str(title)) return inner return decorate @dynamic_report('测试用例1:','a') @pytest.mark.parametrize('a,b',[(1,'zxb'),(2,'zxl')]) def test_case(a,b): print(f'测试用例{a}',b) if __name__ == '__main__': pytest.main(['tools_test.py', '-s', r'--alluredir=C:Usersxibo.zhuworkmyselfgitdemozhuxibo_demo_43project_SZcase_data emp eport','--clean-alluredir']) # Jenkins执行的时候不需要此行代码 os.system(r'allure serve C:Usersxibo.zhuworkmyselfgitdemozhuxibo_demo_43project_SZcase_data emp eport')