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中定义结构体的方法
Mar 04 Python
Python使用Pycrypto库进行RSA加密的方法详解
Jun 06 Python
Linux上安装Python的PIL和Pillow库处理图片的实例教程
Jun 23 Python
Python 遍历列表里面序号和值的方法(三种)
Feb 17 Python
python基于pyDes库实现des加密的方法
Apr 29 Python
python3.4下django集成使用xadmin后台的方法
Aug 15 Python
Python中应该使用%还是format来格式化字符串
Sep 25 Python
python利用跳板机ssh远程连接redis的方法
Feb 19 Python
Python如何在main中调用函数内的函数方式
Jun 01 Python
python文件编写好后如何实践
Jul 07 Python
Pytorch中Softmax与LogSigmoid的对比分析
Jun 05 Python
浅谈Python协程asyncio
Jun 20 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排序算法(冒泡排序,快速排序)
2012/10/09 PHP
PHP callback函数使用方法和注意事项
2015/01/23 PHP
PHP代码实现表单数据验证类
2015/07/28 PHP
javaScript - 如何引入js代码
2021/03/09 Javascript
情人节专属 纯js脚本1k大小的3D玫瑰效果
2012/02/11 Javascript
借助javascript代码判断网页是静态还是伪静态
2014/05/05 Javascript
基于javascript的JSON格式页面展示美化方法
2014/07/02 Javascript
Javascript编写2048小游戏
2015/07/07 Javascript
javascript实现图片上传前台页面
2015/08/18 Javascript
JavaScript中各种引用类型的常用操作方法小结
2016/05/05 Javascript
Angular和百度地图的结合实例代码
2016/10/19 Javascript
写jQuery插件时的注意点
2017/02/20 Javascript
vue mixins组件复用的几种方式(小结)
2017/09/06 Javascript
Angular4学习笔记router的简单使用
2018/03/30 Javascript
vue watch深度监听对象实现数据联动效果
2018/08/16 Javascript
Vuex 使用 v-model 配合 state的方法
2018/11/13 Javascript
详解如何用webpack4从零开始构建react开发环境
2019/01/27 Javascript
[02:58]献给西雅图的情书_高清
2014/05/29 DOTA
简单文件操作python 修改文件指定行的方法
2013/05/15 Python
python socket网络编程步骤详解(socket套接字使用)
2013/12/06 Python
Python中使用PIPE操作Linux管道
2015/02/04 Python
介绍Python中几个常用的类方法
2015/04/08 Python
Python内置函数—vars的具体使用方法
2017/12/04 Python
Python cookbook(数据结构与算法)实现对不原生支持比较操作的对象排序算法示例
2018/03/15 Python
python pandas消除空值和空格以及 Nan数据替换方法
2018/10/30 Python
用python实现刷点击率的示例代码
2019/02/21 Python
Django使用Channels实现WebSocket的方法
2019/07/28 Python
Python数据库封装实现代码示例解析
2020/09/05 Python
应届医学毕业生求职信分享
2013/12/02 职场文书
团工委书记自荐书范文
2013/12/17 职场文书
《争吵》教学反思
2014/02/15 职场文书
就业协议书的作用
2014/04/11 职场文书
授权委托书协议书
2014/10/16 职场文书
2014年初三班主任工作总结
2014/12/05 职场文书
假如给我三天光明:舟逆水而行,人遇挫而达 
2019/10/29 职场文书
Python编程根据字典列表相同键的值进行合并
2021/10/05 Python