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单例模式实例分析
Jan 14 Python
Python 冒泡,选择,插入排序使用实例
Feb 05 Python
Python脚本在Appium库上对移动应用实现自动化测试
Apr 17 Python
使用Python下载歌词并嵌入歌曲文件中的实现代码
Nov 13 Python
Python进阶之尾递归的用法实例
Jan 31 Python
PyQt5打开文件对话框QFileDialog实例代码
Feb 07 Python
Python操作MySQL数据库的两种方式实例分析【pymysql和pandas】
Mar 18 Python
django如何实现视图重定向
Jul 24 Python
40个你可能不知道的Python技巧附代码
Jan 29 Python
Pycharm中import torch报错的快速解决方法
Mar 05 Python
Python figure参数及subplot子图绘制代码
Apr 18 Python
Python Pandas模块实现数据的统计分析的方法
Jun 24 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的内置函数,通过DES算法对数据加密和解密
2012/06/21 PHP
jquery+json实现的搜索加分页效果
2010/03/31 Javascript
疯狂Jquery第一天(Jquery学习笔记)
2012/05/11 Javascript
Jquery中LigerUi的弹出编辑框(实现方法)
2013/07/09 Javascript
javascript计算当月剩余天数(天数计算器)示例代码
2014/01/09 Javascript
JavaScript极简入门教程(二):对象和函数
2014/10/25 Javascript
jquery右下角自动弹出可关闭的广告层
2015/05/08 Javascript
javascript解析xml实现省市县三级联动的方法
2015/07/25 Javascript
js绘制圆形和矩形的方法
2015/08/05 Javascript
jQuery移动端图片上传组件
2016/06/12 Javascript
谈谈JavaScript的New关键字
2016/08/26 Javascript
Node.js五大应用性能技巧小结(必须收藏)
2017/08/09 Javascript
使用js实现将后台传入的json数据放在前台显示
2018/08/06 Javascript
详解如何为你的angular app构建一个第三方库
2018/12/07 Javascript
Vue3.x源码调试的实现方法
2019/10/13 Javascript
layui实现数据表格自定义数据项
2019/10/26 Javascript
VUE 实现动态给对象增加属性,并触发视图更新操作示例
2019/11/29 Javascript
9种方法优化jQuery代码详解
2020/02/04 jQuery
vue 判断元素内容是否超过宽度的方式
2020/07/29 Javascript
Vue 根据条件判断van-tab的显示方式
2020/08/03 Javascript
layui使用及简单的三级联动实现教程
2020/12/01 Javascript
简单介绍Python中的filter和lambda函数的使用
2015/04/07 Python
Python3.6基于正则实现的计算器示例【无优化简单注释版】
2018/06/14 Python
pygame游戏之旅 添加键盘按键的方法
2018/11/20 Python
深入解析python中的实例方法、类方法和静态方法
2019/03/11 Python
python双向链表原理与实现方法详解
2019/12/03 Python
利用setuptools打包python程序的方法步骤
2020/01/18 Python
Python利用PyPDF2库获取PDF文件总页码实例
2020/04/03 Python
详解如何通过H5(浏览器/WebView/其他)唤起本地app
2017/12/11 HTML / CSS
英国领先的露营和露营车品牌之一:OLPRO
2019/08/06 全球购物
营业员个人总结的自我评价
2013/10/25 职场文书
计算机专业职业规划
2014/02/28 职场文书
实习会计求职自荐信范文
2014/03/10 职场文书
车间核算员岗位职责
2014/07/01 职场文书
党支部先进事迹材料
2014/12/24 职场文书
工作年限证明模板
2015/06/15 职场文书