pytest框架的小知识(二)- 部分前后置+全局前后置

1、实现部分前置,conftest.py和fixture结合使用

1.1 conftest.py文件:

conftest.py文件是单独存放@pytest.fixture()的方法。用处是可以在多个py文件之间共享前置配置

conftest.py文件里面的方法在调用时不需要导入,可以直接使用

conftest.py可以有多个,也可以有多个不同层级

1.2 fixture装饰器

@pytest.fixture(scope=”function”)  作用域不写默认是函数级别,yield唤醒类似teardown功能,简单理解就是返回。

例如:

conftest.py中定义了一个连接数据库的方法conn_database(),引入了@pytest.fixture装饰器,作用域是函数级别,使用yield区分函数执行前操作和函数执行后操作

@pytest.fixture(scope="function")
def conn_database():
        print("连接数据库")
        yield
        print("关闭数据库")

不用导包直接引用:

可以看到,在方法执行之前,先执行了conftest里的内容。除了在方法名后调用,也可以使用装饰器@pytest.mark.usefixtures("conn_database")调用,效果是一样的。

2、fixture相互调用(Fixture的相互调用要在测试方法里调用fixture才会生效)

3、pytest的5种全局前后置,pytest⽐unittest多了函数级和⽅法级

  • 模块级(setup_module/teardown_module)所有用例执行前/后只执行一次(类外)

        前置--用例1、用例2 --后置

  • 函数级(setup_function/teardown_function)每个用例前/后执行(类外)

        前置--用例1---后置    前置--用例2---后置

  • 类级(setup_class/teardown_class)类中所有用例前/后只执行⼀次(类中)

        前置-- 类里面的用例1、类里面的用例2--后置

  • ⽅法级(setup_method/teardown_method)类中每个用例前/后执行(类中)

        前置-- 类里面的用例1--后置    前置--类里面的用例2--后置

  • setup/teardown  每条用例前/后执行(类中类外都可以执行)

 4、@pytest.mark.parametrize(args_name,args_value)参数化,用于传递测试数据

args_name:参数名

args_value:参数值(使用list列表,tuple元组,字典列表,字典元组等),在数据中有多少个值,那么接口用例就会执行多少次

方法中传入参数名即可获得对应的参数值,例如:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值