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元组,字典列表,字典元组等),在数据中有多少个值,那么接口用例就会执行多少次
方法中传入参数名即可获得对应的参数值,例如:
Original: https://blog.csdn.net/weixin_48626846/article/details/125017912
Author: 测试小小苏
Title: pytest框架的小知识(二)- 部分前后置+全局前后置
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/776040/
转载文章受原作者版权保护。转载请注明原作者出处!