python pytest进阶之conftest.py详解


Posted in Python onJune 27, 2019

前言

前面几篇文章基本上已经了解了pytest 命令使用,收集用例,finxture使用及作用范围,今天简单介绍一下conftest.py文件的作用和实际项目中如是使用此文件!

实例场景

首先们思考这样一个问题:如果我们在编写测试用的时候,每一个测试文件里面的用例都需要先登录后才能完成后面的操作,那么们该如何实现呢?这就需要我们掌握conftest.py文件的使用了。

实例代码

创建如下一个目录

ConftestFile
|conftest.py
|test_file_01.py
|test_file_02.py
|__init__.py
# conftest.py
import pytest
@pytest.fixture()
def login():

print('\n---------------conftest文件login方法开始执行----------------------------')

print('login in conftest.py')

print('----------------conftest.py文件login方法执行结束---------------------------')
# test_file_01.py
def test_01(login):

print('\n------------------用例文件1测试用例1开始执行------------------')

print('login after : in test_file_01->case test_01')

print('-------------------用例文件1测试用例1执行结束------------------------')
# test_file_02.py
def test_02(login):

print('\n------------------用例文件2测试用例2开始执行------------------')

print('login after : in test_file_01->case test_01')

print('-------------------用例文件2测试用例2执行结束------------------------')

我们先来运行一下这个实例代码看看输出结果

1.在pycharm可以右键目录运行

2.可以在cmd目录中输入 pytest -vs 来运行

test_file_01.py 
---------------conftest文件login方法开始执行----------------------------
login in conftest.py
----------------conftest.py文件login方法执行结束---------------------------
.
------------------用例文件1测试用例1开始执行------------------
login after : in test_file_01->case test_01
-------------------用例文件1测试用例1执行结束------------------------
[ 50%]
test_file_02.py 
---------------conftest文件login方法开始执行----------------------------
login in conftest.py
----------------conftest.py文件login方法执行结束---------------------------
.
------------------用例文件2测试用例2开始执行------------------
login after : in test_file_01->case test_01
-------------------用例文件2测试用例2执行结束------------------------
[100%]
========================== 2 passed in 0.04 seconds ===========================

可以看到每个测试文件的测试用例执行前都执行了conftest.py文件中的login方法,通过这种模式我们就可以实现测试用例前置条件的准备工作了!

conftest文件实际应用中需要结合fixture来使用,那么fixture中参数scope也适用conftest中fixture的特性,这里再说明一下

1.conftest中fixture的scope参数为session,那么所有的测试文件执行前执行一次

2.conftest中fixture的scope参数为module,那么每一个测试文件执行前都会执行一次conftest文件中的fixture

3.conftest中fixture的scope参数为class,那么每一个测试文件中的测试类执行前都会执行一次conftest文件中的fixture

4.conftest中fixture的scope参数为function,那么所有文件的测试用例执行前都会执行一次conftest文件中的fixture

总结

理论往往都需要实践的验证,所以要想掌握conftest具体的使用,还需要多加使用代码验证!我上面的代码只是验证了测试文件中测试函数使用conftest.py,实际工作中不仅仅只有函数使用,也往往不仅存在一个conftest.py文件。下面是我总结的特性,希望对大家有帮助吧!

1.conftest.py文件名字是固定的,不可以做任何修改

2.文件和用例文件在同一个目录下,那么conftest.py作用于整个目录

3.conftest.py文件所在目录必须存在__init__.py文件

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

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python内置函数dir详解
Apr 14 Python
简单谈谈Python中的json与pickle
Jul 19 Python
python下载文件记录黑名单的实现代码
Oct 24 Python
Python中对象的引用与复制代码示例
Dec 04 Python
python实现点对点聊天程序
Jul 28 Python
Python实现基于POS算法的区块链
Aug 07 Python
Python通过paramiko远程下载Linux服务器上的文件实例
Dec 27 Python
对Python实现累加函数的方法详解
Jan 23 Python
解决tensorflow训练时内存持续增加并占满的问题
Jan 19 Python
基于python的docx模块处理word和WPS的docx格式文件方式
Feb 13 Python
用python 绘制茎叶图和复合饼图
Feb 26 Python
python识别围棋定位棋盘位置
Jul 26 Python
详解Python 多线程 Timer定时器/延迟执行、Event事件
Jun 27 #Python
python pytest进阶之fixture详解
Jun 27 #Python
解决pycharm 远程调试 上传 helpers 卡住的问题
Jun 27 #Python
python中pytest收集用例规则与运行指定用例详解
Jun 27 #Python
python取余运算符知识点详解
Jun 27 #Python
如何运行.ipynb文件的图文讲解
Jun 27 #Python
python的pytest框架之命令行参数详解(下)
Jun 27 #Python
You might like
玛琪朵 Macchiato
2021/03/03 咖啡文化
用文本文件制作留言板提示(上)
2006/10/09 PHP
我的论坛源代码(六)
2006/10/09 PHP
PHP 过滤页面中的BOM(实现代码)
2013/06/29 PHP
php实现执行某一操作时弹出确认、取消对话框
2013/12/30 PHP
destoon二次开发入门示例
2014/06/20 PHP
php对二维数组进行相关操作(排序、转换、去空白等)
2015/11/04 PHP
Laravle eloquent 多对多模型关联实例详解
2017/11/22 PHP
JavaScript DOM 学习第三章 内容表格
2010/02/19 Javascript
js借助ActiveXObject实现创建文件
2013/09/29 Javascript
javascript中String对象的slice()方法分析
2014/12/20 Javascript
jQuery中end()方法用法实例
2015/01/08 Javascript
Jquery实现弹性滑块滑动选择数值插件
2015/08/08 Javascript
input 禁止输入特殊字符的四种实现方式
2016/08/24 Javascript
Javascript获取background属性中url的值
2016/10/17 Javascript
整理关于Bootstrap模态弹出框的慕课笔记
2017/03/29 Javascript
js获取指定时间的前几秒
2017/04/05 Javascript
js判断密码强度的方法
2020/03/18 Javascript
Python随机数用法实例详解【基于random模块】
2017/04/18 Python
pygame 精灵的行走及二段跳的实现方法(必看篇)
2017/07/10 Python
Python实现将照片变成卡通图片的方法【基于opencv】
2018/01/17 Python
Python使用matplotlib实现的图像读取、切割裁剪功能示例
2018/04/28 Python
查看TensorFlow checkpoint文件中的变量名和对应值方法
2018/06/14 Python
使用python实现快速搭建简易的FTP服务器
2018/09/12 Python
Python random库使用方法及异常处理方案
2020/03/02 Python
pyqt5数据库使用详细教程(打包解决方案)
2020/03/25 Python
Python pathlib模块使用方法及实例解析
2020/10/05 Python
电子专业推荐信范文
2013/11/18 职场文书
建筑专业毕业生自荐信
2014/05/25 职场文书
预备党员自我评价范文
2015/03/04 职场文书
2015年度服装销售工作总结
2015/03/31 职场文书
婚庆开业庆典主持词
2015/06/30 职场文书
任命书格式范文
2015/09/22 职场文书
golang中实现给gif、png、jpeg图片添加文字水印
2021/04/26 Golang
详解Django的MVT设计模式
2021/04/29 Python
用PYTHON去计算88键钢琴的琴键频率和音高
2022/04/10 Python