Pytest高级运用之conftest.py文件详解

一、fixture回顾

这里我们先来回顾一下@pytest.fixture()的使用:

函数在用装饰器@pytest.fixture()标记之后,该函数名就可以当作参数传入到测试函数里面

图片[1] - Pytest高级运用之conftest.py文件详解 - 三酷猫
图片[2] - Pytest高级运用之conftest.py文件详解 - 三酷猫

conftest.py文件实际上就是把fixture这段代码提取出来,统一放在一个文件里边。供其它模块,类,函数使用。

图片[3] - Pytest高级运用之conftest.py文件详解 - 三酷猫

二、conftest.py文件编写

图片[4] - Pytest高级运用之conftest.py文件详解 - 三酷猫
conftest.py文件示例

conftest.py编写

上面已经说的很明白了,conftest.py就是把fixture的代码提取出来,统一管理而已。因此conftest.py的编写完全就是fixture的使用方法!可以看下面fixture的教程,学习fixture的用法。

读完上面文章,可以知道fixture有个scope参数,取值为:function、class、module、package、session

决定了fixture的作用范围

  • -function:每一个函数或方法都会调用
  • -class:每一个类调用一次,一个类中可以有多个方法
  • -module:每一个.py文件调用一次,该文件内又有多个function和class
  • -session:是多个文件调用一次,可以跨.py文件调用,每个.py文件就是module

conftest.py特点

1、可以跨.py文件调用,有多个.py文件调用时,可让conftest.py只调用了一次fixture,或调用多次fixture

2、不需要import导入 conftest.py,pytest用例会自动识别该文件,放到项目的根目录下就可以全局目录调用了,如果放到某个package下,那就在改package内有效,可有多个conftest.py

3、conftest.py配置脚本名称是固定的,不能改名称

4、conftest.py文件不能被其他文件导入

5、所有同目录测试文件运行前都会执行conftest.py文件

三、conftest.py应用场景

1、每个接口需共用到的token

2、每个接口需共用到的测试用例数据

3、每个接口需共用到的配置信息

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享