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检测服务器是否正常
Feb 16 Python
深入理解Python 代码优化详解
Oct 27 Python
在Python的Flask中使用WTForms表单框架的基础教程
Jun 07 Python
利用Python实现网络测试的脚本分享
May 26 Python
使用python实现BLAST
Feb 12 Python
python实现简单tftp(基于udp协议)
Jul 30 Python
删除DataFrame中值全为NaN或者包含有NaN的列或行方法
Nov 06 Python
selenium+python自动化测试之多窗口切换
Jan 23 Python
解决python Markdown模块乱码的问题
Feb 14 Python
python日志模块logbook使用方法
Sep 19 Python
Django1.11配合uni-app发起微信支付的实现
Oct 12 Python
用OpenCV进行年龄和性别检测的实现示例
Jan 29 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
PHP 日期时间函数的高级应用技巧
2009/10/10 PHP
php递归创建和删除文件夹的代码小结
2012/04/13 PHP
JS 文字符串转换unicode编码函数
2009/05/30 Javascript
javascript 24小时弹出一次的代码(利用cookies)
2009/09/03 Javascript
JavaScript建立一个语法高亮输入框实现思路
2013/02/26 Javascript
JS 页面计时器示例代码
2013/10/28 Javascript
js对象转json数组的简单实现案例
2014/02/28 Javascript
创建js对象和js类的方法汇总
2014/12/24 Javascript
JavaScript中匿名函数用法实例
2015/03/23 Javascript
详细总结Javascript中的焦点管理
2016/09/17 Javascript
javascript监听页面刷新和页面关闭事件方法详解
2017/01/09 Javascript
基于bootstrap实现bootstrap中文网巨幕效果
2017/05/02 Javascript
jQuery+CSS实现的table表格行列转置功能示例
2018/01/08 jQuery
基于vue.js中事件修饰符.self的用法(详解)
2018/02/23 Javascript
JS实现的3des+base64加密解密算法完整示例
2018/05/18 Javascript
JS使用队列对数组排列,基数排序算法示例
2019/03/02 Javascript
Javascript异步执行不按顺序解决方案
2020/04/30 Javascript
[35:44]2014 DOTA2华西杯精英邀请赛 5 24 iG VS VG
2014/05/26 DOTA
[02:21]十步杀一人,千里不留行——DOTA2全新英雄天涯墨客展示
2018/08/29 DOTA
python实现人人网登录示例分享
2014/01/19 Python
python操作mysql中文显示乱码的解决方法
2014/10/11 Python
遗传算法之Python实现代码
2017/10/10 Python
Numpy 将二维图像矩阵转换为一维向量的方法
2018/06/05 Python
python matplotlib库绘制散点图例题解析
2019/08/10 Python
Python pygame绘制文字制作滚动文字过程解析
2019/12/12 Python
python 读取.nii格式图像实例
2020/07/01 Python
法国娇韵诗官方旗舰店:Clarins是来自法国的天然护肤品牌
2018/06/30 全球购物
Lacoste(法国鳄鱼)加拿大官网:以标志性的POLO衫而闻名
2019/05/15 全球购物
专科毕业生自我鉴定
2013/12/01 职场文书
酒店餐厅2014重阳节活动策划方案
2014/09/16 职场文书
谢师宴学生致辞
2015/07/27 职场文书
2019学校请假条格式及范文
2019/06/25 职场文书
接触艺术对孩子学习思维有益
2019/08/06 职场文书
2019奶茶店创业计划书范本,值得你借鉴
2019/08/14 职场文书
你真的了解PHP中的引用符号(&)吗
2021/05/12 PHP
科学家测试在太空中培育人造肉,用于未来太空旅行
2022/04/29 数码科技