美文网首页
pytest常用装饰器

pytest常用装饰器

作者: jinjin1009 | 来源:发表于2021-12-17 15:54 被阅读0次

    一、parametrize--参数化
    pytest中装饰器@pytest.mark.parametrize('参数名',list)可以实现测试用例参数化。
    1、第一个参数是字符串,多个参数中间用逗号隔开
    2、第二个参数是list,多组数据是用元组类型,传三个或者更多参数也是这么传,list的每个元素都是一个元组,元组里的每个元素和参数顺序一一对应
    3、传一个参数@pytest.mark.parametrize('参数名',list) 进行参数化
    4、传两个参数@pytest.mark.parametrize('参数名1,参数名2',[(参数1_data[0], 参数2_data[0]),(参数1_data[1], 参数2_data[1])]) 进行参数化
    详见:https://cloud.tencent.com/developer/article/1527541
    二、order--执行顺序
    1、控制用例执行顺序的方法
    2、在需要调整用例执行顺序的函数(或方法)前增加,如@pytest.mark.run(order=x),x表示数字
    3、执行顺序,由小到大、由正到负、未标记的在正数后、负数前执行
    顺序为:1,2,3,无标记,-3,-2,-1

    class Testpytest(object):
     
      @pytest.mark.run(order=-1)
      def test_two(self):
        print("test_two, 测试用例")
     
      @pytest.mark.run(order=3)
      def test_one(self):
        print("test_one, 测试用例")
     
      @pytest.mark.run(order=1)
      def test_three(self):
        print("test_three, 测试用例")
    

    三、fixture--函数做参数
    1、可将被fixture标记的函数当作参数使用
    2、fixture可放到conftest.py文件下,conftest.py会自动识别哪个用例调用了这个函数
    3、fixture可以实现setup和teardown功能

    # 步骤1
    @pytest.fixture()
    def login(): 
        print("输入账号,密码,进行登录")
    
    def test_add_cart(login):  # 步骤2
        print("添加购物车--需要登录")
    
    def test_add_address(login):  # 步骤3
        print("添加收货地址--需要登录")
    
    def test_browser_goods():
        print("浏览商品--不需要登录")
    
    if __name__ == '__main__':
        pytest.main()
    

    四、rerunfailure--失败重跑
    1、失败重跑机制
    2、安装pytest-rerunfailure
    在设置文件pytest.ini中添加命令
    reruns = 重跑次数
    addopts= --reruns =10

    五、skip--跳过测试
    1、pytest.skip(用于函数内,跳过测试用例)

    def test_1():
        if 1 < 2:
            pytest.skip('1111111')
        pass
    

    2、@pytest.mark.skip(用于函数外,跳过测试用例)

    @pytest.mark.skip(reason='feature not implemented')
    def test_1():
        pass
    

    3、@pytest.mark.skipif(用于函数外,条件condition,跳过原因reason="xxx")

    @pytest.mark.skipif(condition='1<2' , reason='feature not implemented')
    def test_1():
        pass
    

    相关文章

      网友评论

          本文标题:pytest常用装饰器

          本文链接:https://www.haomeiwen.com/subject/sryifrtx.html