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的Flask框架与数据库连接的教程
Apr 20 Python
Python字符编码判断方法分析
Jul 01 Python
python jieba分词并统计词频后输出结果到Excel和txt文档方法
Feb 11 Python
如何使用Python的Requests包实现模拟登陆
Apr 27 Python
分享一下Python数据分析常用的8款工具
Apr 29 Python
python的xpath获取div标签内html内容,实现innerhtml功能的方法
Jan 02 Python
使用Filter过滤python中的日志输出的实现方法
Jul 17 Python
pymysql 开启调试模式的实现
Sep 24 Python
Python中BeautifuSoup库的用法使用详解
Nov 15 Python
使用Rasterio读取栅格数据的实例讲解
Nov 26 Python
Python接口自动化测试的实现
Aug 28 Python
如何用Matlab和Python读取Netcdf文件
Feb 19 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面向对象全攻略 (十一)__toString()用法 克隆对象 __call处理调用错误
2009/09/30 PHP
php数组函数序列 之array_count_values() 统计数组中所有值出现的次数函数
2011/10/29 PHP
php读取3389的脚本
2014/05/06 PHP
windows7下安装php的php-ssh2扩展教程
2014/07/04 PHP
举例详解PHP脚本的测试方法
2015/08/05 PHP
详解php命令注入攻击
2019/04/06 PHP
jQuery 跨域访问问题解决方法
2009/12/02 Javascript
innerText和textContent对比及使用介绍
2013/02/27 Javascript
jquery插件推荐 jquery.cookie
2014/11/09 Javascript
jquery实现将获取的颜色值转换为十六进制形式的方法
2014/12/20 Javascript
打造自己的jQuery插件入门教程
2016/09/23 Javascript
Angularjs使用ng-repeat中$even和$odd属性的注意事项
2016/12/31 Javascript
基于vue.js实现侧边菜单栏
2017/03/20 Javascript
Angular5给组件本身的标签添加样式class的方法
2018/04/07 Javascript
r.js来合并压缩css文件的示例
2018/04/26 Javascript
深入理解Vue 组件之间传值
2018/08/16 Javascript
微信小程序中限制激励式视频广告位显示次数(实现思路)
2019/12/06 Javascript
在 Vue 中编写 SVG 图标组件的方法
2020/02/24 Javascript
vuex实现购物车功能
2020/06/28 Javascript
[45:15]Optic vs VP 2018国际邀请赛淘汰赛BO3 第一场 8.24
2018/08/25 DOTA
Python getopt模块处理命令行选项实例
2014/05/13 Python
详解Python函数作用域的LEGB顺序
2016/05/14 Python
利用Python暴力破解zip文件口令的方法详解
2017/12/21 Python
Python实现带参数的用户验证功能装饰器示例
2018/12/14 Python
django框架基于模板 生成 excel(xls) 文件操作示例
2019/06/19 Python
Python3如何使用多线程升程序运行速度
2020/08/11 Python
StubHub哥伦比亚:购买和出售您的门票
2016/10/20 全球购物
美国Lolё官网:购买大胆而美丽的女性运动服装
2017/05/22 全球购物
杭州龙健科技笔试题.net部分笔试题
2016/01/24 面试题
竞聘演讲稿范文
2014/01/12 职场文书
学生会主席就职演讲稿
2014/01/14 职场文书
关于期中考试的反思
2014/02/02 职场文书
党章培训心得体会
2014/09/04 职场文书
长江七号观后感
2015/06/11 职场文书
离职告别感言
2015/08/04 职场文书
音乐课《小猫钓鱼》教学反思
2016/02/18 职场文书