pytest,allure报告,标题等等样式

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:\Users\xibo.zhu\work\myself\gitdemo\zhuxibo_demo_43\project_SZ\case_data\temp\report','--clean-alluredir'])
    # Jenkins执行的时候不需要此行代码
    os.system(r'allure serve C:\Users\xibo.zhu\work\myself\gitdemo\zhuxibo_demo_43\project_SZ\case_data\temp\report')

 

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:\Users\xibo.zhu\work\myself\gitdemo\zhuxibo_demo_43\project_SZ\case_data\temp\report','--clean-alluredir'])
    # Jenkins执行的时候不需要此行代码
    os.system(r'allure serve C:\Users\xibo.zhu\work\myself\gitdemo\zhuxibo_demo_43\project_SZ\case_data\temp\report')

 

posted @ 2021-01-19 15:43  西西cc  阅读(326)  评论(0编辑  收藏  举报