zoukankan      html  css  js  c++  java
  • 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')

  • 相关阅读:
    JS中所有数组的方法和所有的对象方法,包含ES5和ES6
    (原创!)彻底理解JS中的事件,事件处理函数,钩子函数,回调函数。
    深拷贝和浅拷贝的区别,object.assgin方法是深拷贝还是浅拷贝
    axios,Ajax,jQuery ajax,axios和fetch的区别
    python : 文档比较
    leetcode——989.数组形式的整数加法
    leetcode——66.加一
    leetcode——283.移动0
    leetcode——27.移除元素
    leetcode刷题第一天——两数之和
  • 原文地址:https://www.cnblogs.com/zhuxibo/p/14297298.html
Copyright © 2011-2022 走看看