• 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: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')

  • 相关阅读:
    设计模式之观察者模式
    设计模式之模板方法模式
    设计模式之代理模式(全面讲解)
    设计模式之工厂模式(包含三种模式)
    设计模式之单例模式(包含三种方式)
    opencv+vs2015 堆内存析构异常
    用python来压缩文件
    GPT安装ubuntu的问题
    Two Sum and add Two Numbers
    [LeetCode] Palindrome Partitioning II
  • 原文地址:https://www.cnblogs.com/zhuxibo/p/14297298.html
Copyright © 2020-2023  润新知