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解析xml文件实例分享
Dec 04 Python
python生成随机密码或随机字符串的方法
Jul 03 Python
Python3使用requests包抓取并保存网页源码的方法
Mar 15 Python
Python+tkinter使用80行代码实现一个计算器实例
Jan 16 Python
python自动发送测试报告邮件功能的实现
Jan 22 Python
简单了解python的break、continue、pass
Jul 08 Python
利用python开发app实战的方法
Jul 09 Python
TensorFlow实现checkpoint文件转换为pb文件
Feb 10 Python
mac在matplotlib中显示中文的操作方法
Mar 06 Python
详解pandas赋值失败问题解决
Nov 29 Python
python 提取html文本的方法
May 20 Python
Python几种酷炫的进度条的方式
Apr 11 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
function.inc.php超越php
2006/12/09 PHP
PHP时间和日期函数详解
2015/05/08 PHP
Zend Studio使用技巧两则
2016/04/01 PHP
PHP类与对象后期静态绑定操作实例详解
2018/12/20 PHP
在laravel中实现ORM模型使用第二个数据库设置
2019/10/24 PHP
PHP利用curl发送HTTP请求的实例代码
2020/07/09 PHP
JavaScript中“+=”的应用
2007/02/02 Javascript
当jQuery1.7遇上focus方法的问题
2014/01/26 Javascript
由浅入深讲解Javascript继承机制与simple-inheritance源码分析
2015/12/13 Javascript
基于JQuery实现图片上传预览与删除操作
2016/05/24 Javascript
JavaScript设计模式之单体模式全面解析
2016/09/09 Javascript
jQuery插件FusionCharts实现的2D饼状图效果【附demo源码下载】
2017/03/03 Javascript
js学习总结_选项卡封装(实例讲解)
2017/07/13 Javascript
关于JS与jQuery中的文档加载问题
2017/08/22 jQuery
js中json对象和字符串的理解及相互转化操作实现方法
2017/09/22 Javascript
微信小程序返回多级页面的实现方法
2017/10/27 Javascript
详解html-webpack-plugin插件(用法总结)
2018/09/12 Javascript
小程序实现左滑删除功能
2018/10/30 Javascript
vue-cli安装使用流程步骤详解
2018/11/08 Javascript
layui实现数据表格点击搜索功能
2020/03/26 Javascript
Python urllib、urllib2、httplib抓取网页代码实例
2015/05/09 Python
win7下python3.6安装配置方法图文教程
2018/07/31 Python
python爱心表白 每天都是浪漫七夕!
2018/08/18 Python
Python中的十大图像处理工具(小结)
2019/06/10 Python
使用html5+css3来实现slider切换效果告别javascript+css
2013/01/08 HTML / CSS
德国奢侈品网上商城:Mytheresa
2016/08/24 全球购物
英国珠宝网站Argento: PANDORA、Olivia Burton和Nomination等
2020/05/08 全球购物
为什么需要版本控制
2016/10/28 面试题
求职简历的自我评价怎样写好
2013/10/07 职场文书
房屋财产继承协议书范本
2014/11/03 职场文书
幼儿园辞职书
2015/02/26 职场文书
2015年度个人思想工作总结
2015/04/08 职场文书
民间借贷纠纷案件代理词
2015/05/26 职场文书
开业庆典嘉宾致辞
2015/08/01 职场文书
导游词之五台山
2019/10/11 职场文书
MySQL聚簇索引和非聚簇索引的区别详情
2022/06/14 MySQL