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 相关文章推荐
推荐11个实用Python库
Jan 23 Python
使用Python压缩和解压缩zip文件的教程
May 06 Python
python利用标准库如何获取本地IP示例详解
Nov 01 Python
Python实战小程序利用matplotlib模块画图代码分享
Dec 09 Python
python使用xpath中遇到:到底是什么?
Jan 04 Python
python 多线程对post请求服务器测试并发的方法
Jun 13 Python
基于python框架Scrapy爬取自己的博客内容过程详解
Aug 05 Python
python接口调用已训练好的caffe模型测试分类方法
Aug 26 Python
python tkinter 设置窗口大小不可缩放实例
Mar 04 Python
如何向scrapy中的spider传递参数的几种方法
Nov 18 Python
Python 正则模块详情
Nov 02 Python
python全面解析接口返回数据
Feb 12 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
Zend Framework教程之Zend_Config_Ini用法分析
2016/03/23 PHP
Zend Framework常用校验器详解
2016/12/09 PHP
php的instanceof和判断闭包Closure操作示例
2020/01/26 PHP
项目实践之javascript技巧
2007/12/06 Javascript
JQuery 中几个类选择器的简单使用介绍
2013/03/14 Javascript
jquery如何获取复选框的值
2013/12/12 Javascript
Ajax提交与传统表单提交的区别说明
2014/02/07 Javascript
js实现日历可获得指定日期周数及星期几示例分享(js获取星期几)
2014/03/14 Javascript
jquery实现预览提交的表单代码分享
2014/05/21 Javascript
实例讲解javascript注册事件处理函数
2016/01/09 Javascript
JavaScript交换两个变量值的七种解决方案
2016/12/01 Javascript
js仿网易表单及时验证功能
2017/03/07 Javascript
js实现购物车功能
2018/06/12 Javascript
Vuex mutitons和actions初使用详解
2019/03/04 Javascript
Vue.directive 实现元素scroll逻辑复用
2019/11/29 Javascript
python中使用xlrd、xlwt操作excel表格详解
2015/01/29 Python
python3.7.0的安装步骤
2018/08/27 Python
Python图像处理之gif动态图的解析与合成操作详解
2018/12/30 Python
使用python 打开文件并做匹配处理的实例
2019/01/02 Python
python数据类型之间怎么转换技巧分享
2019/08/20 Python
基于Python获取docx/doc文件内容代码解析
2020/02/17 Python
django表单中的按钮获取数据的实例分析
2020/07/31 Python
python tkinter实现下载进度条及抖音视频去水印原理
2021/02/07 Python
TheFork葡萄牙:欧洲领先的在线餐厅预订平台
2019/05/27 全球购物
戴森香港官方网站:Dyson香港
2021/02/11 全球购物
数控技术专业推荐信
2013/11/01 职场文书
投标单位介绍信
2014/01/09 职场文书
初中政治教学反思
2014/01/17 职场文书
素食餐饮项目创业计划书
2014/02/02 职场文书
超市仓管员岗位职责
2014/04/07 职场文书
大型演出策划方案
2014/05/28 职场文书
2014年社区卫生工作总结
2014/12/18 职场文书
煤矿百日安全活动总结
2015/05/07 职场文书
《兰兰过桥》教学反思
2016/02/20 职场文书
Mysql中 unique列插入重复值该怎么解决呢
2021/05/26 MySQL
Feign调用传输文件异常的解决
2021/06/24 Java/Android