pytest篇4-Fixture熟练运用

前言

前面的公众号学习了unittest的Fixture,其实pytest的Fixture大同小异,也非常类似。

  • 1、在做web自动化时,使用Fixture的一些前置或后置条件,非常有效,比如启动浏览器、关闭浏览器等等;

  • 2、在接口自动化过程中,case的数据依赖也可以使用Fixture来完成,也特别有效率;

1、分类

1、setup_module/teardown_module :当前py文件中,所用用例执行之前与之后执行;

2、setup_function/teardown_function:在每个测试函数之前与之后执行;

3、setup/teardown:在每个测试函数之前与之后执行,也可同样适用于类函数;

4、setup_class/teardown_class:在当前测试类的开始与结束时执行;

5、setup_method/teardown_method:在每个测试方法开始与结束时执行;

2、运用

2.1 函数级别

# time :2021/3/28 00:31
# Author :Maynard


import pytest


'''函数级别'''
def setup_function():
    print('---函数级别开始')


def teardown_function():
    print('---函数级别结束')


# ----------测试用例-------------
def test_fun_1():
    sum_1 = 1+1
    assert sum_1 == 2
    print('用例1')


def test_fun_2():
    sum_2= 3+1
    assert sum_2 == 4
    print('用例2')


if __name__ == '__main__':
    pytest.main(['-s','test_05fixture.py'])
'''
main函数中参数含义
-s 可以显示用例的打印信息
-q 参数只显示结果,不会显示过程
'''

运行结果-1

2.2 模块级别

'''
模块级别- 该*.py 所有case,前后执行一次
'''


def setup_module():
    print('模块前执行')


def teardown_module():
    print('模块后执行')


def setup_function():
    print('---函数级别开始')


def teardown_function():
    print('---函数级别结束')


#  ----------测试用例-------------
def test_fun_3():
    sum_3 = 1+1
    assert sum_3 == 2
    print('用例3')


def test_fun_4():
    sum_4= 3+1
    assert sum_4== 4
    print('用例4')




if __name__ == '__main__':
    pytest.main(['-s','test_05fixture.py'])
'''
main函数中参数含义
-s 可以显示用例的打印信息
-q 参数只显示结果,不会显示过程
'''

运行结果-2

2.3 类级别

'''
类级别
'''


class TestCaseMaynard():
    def setup(self):
        print('setup用例开始前执行')


    def teardown(self):
        print('teardown用例结束后执行')


    def setup_class(self):
        print('setup_class所有用例执行之前')


    def teardown_class(self):
        print('teardown_class所有用例执行之后')


    def setup_method(self):
        print('setup_method每个用例开始前执行')


    def teardown_method(self):
        print('teardown_method每个用例开始后执行')


    def test_fun5(self):
        sum_5 = 1 + 1
        assert sum_5 == 2
        print('用例5')


    def test_fun6(self):
        sum_6 = 1 + 1
        assert sum_6 == 2
        print('用例6')


if __name__ == '__main__':
    pytest.main(['-s','test_05fixture.py'])
'''
main函数中参数含义
-s 可以显示用例的打印信息
-q 参数只显示结果,不会显示过程
'''

运行结果-3

3、总结

1、pytest是支持使用测试类的,同样必须以‘Test’开头,注意首字母必须大写;

2、setup_method/teardown_method 和 setup/teardown 两组方法都是作用于测试方法前后,两者方法效果一样,一般使用其一即可;

ps:

  • 1、后续博客将继续深入pytest的总结和学习;

  • 2、大家如果有问题,可以通过公众号首页添加作者微信,多交流,多沟通;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值