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("关闭数据库")

不用导包直接引用:

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

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

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

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

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

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

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元组,字典列表,字典元组等),在数据中有多少个值,那么接口用例就会执行多少次

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

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

Original: https://blog.csdn.net/weixin_48626846/article/details/125017912
Author: 测试小小苏
Title: pytest框架的小知识(二)- 部分前后置+全局前后置

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/776040/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球