当前位置: 首页 > news >正文

Pytest框架学习20--conftest.py

conftest.py作用

正常情况下,如果多个py文件之间需要共享数据,如一个变量,或者调用一个方法

需要先在一个新文件中编写函数等,然后在使用的文件中导入,然后使用

pytest中定义个conftest.py来实现数据,参数,方法、函数的共享

例如,所有用例都需要登录,可以在conftest中编写后,不用导入其他用例文件,可以直接在每个方法前调用

conftest.py文件是pytest的一个特殊文件,它用于定义项目中的共享fixture、钩子函数(hook functions)、插件和配置。这个文件可以位于测试目录树的任何级别,pytest会自动识别并应用其中定义的内容。

conftest.py特点

    conftest.py可以跨.py文件调用,有多个.py文件调用时,可让conftest.py只调用一次fixture,或调用多次fixture
    conftest.py与运行的用例要在同一个pakage下,并且有init.py文件
    不需要import导入 conftest.py,pytest用例会自动识别该文件,放到项目的根目录下就可以全局目录调用了,如果放到某个package下,那就在该package内有效,可有多个conftest.py
    conftest.py配置脚本名称是固定的,不能改名称
    conftest.py文件不能被其他文件导入
    所有同目录测试文件运行前都会执行conftest.py文件

conftest.py使用场景

fixture适用于在同一个py文件中多个用例执行时的使用;而conftest.py方式适用于多个py文件之间的数据共享。比如常见的有以下场景:

    请求接口需要共享登录接口的token/session
    多个case共享一套测试数据
    多个case共享配置信息

eg:

conftest.py

# conftest.pyimport pytest
@pytest.fixture(scope='session')
def get_token():token = 'hogwartssdet'print('conftest中輸出token:%s' % token)return token
# test_01.py
import pytestclass Test(object):def test01(self, get_token):token = 'hogwartssdet'print("【执行test01.py-Test类-test01用例,获取get_token:%s】" % get_token)assert get_token == tokenif __name__ == "__main__":pytest.main(["-s", "test_01.py", "test_02.py"])
# test_02.py
import pytestclass Test(object):def test02(self, get_token):token = 'hogwartssdet'print("【执行test02.py-Test类-test02用例,获取get_token:%s】" % get_token)assert get_token == tokendef test03(self, get_token):token = 'hogwartssdet'print("【执行test02.py-Test类-test03用例,获取get_token:%s】" % get_token)assert get_token == token

实际上就是pytest定义的特殊的文件,用来简化代码编写,存放公共数据的文件

http://www.lryc.cn/news/496156.html

相关文章:

  • 【面试开放题】挫折、问题、擅长、应用技能
  • CTF-PWN: 全保护下格式化字符串利用 [第一届“吾杯”网络安全技能大赛 如果能重来] 赛后学习(没思路了)
  • C++学习日记---第16天
  • SOA、分布式、微服务之间的关系和区别?
  • java基础概念46-数据结构1
  • Node.js-Mongodb数据库
  • STM32 ADC --- 知识点总结
  • 技术创新与人才培养并重 软通动力子公司鸿湖万联亮相OpenHarmony人才生态大会
  • 兔子繁衍问题
  • 汉代风云人物 1晁错
  • 学习threejs,使用specularMap设置高光贴图
  • 【UE5 C++】判断两点连线是否穿过球体
  • 【Blender】如何创建空心管道
  • ChromeBook11 HP G7EE 刷入Ubuntu的记录
  • 16asm - 汇编介绍 和 debug使用
  • 初识QT第一天
  • ChatGPT科研应用、论文写作、课题申报、数据分析与AI绘图
  • 原子类、AtomicLong、AtomicReference、AtomicIntegerFieldUpdater、LongAdder
  • c语言——数组名该如何理解呢?
  • Linux学习笔记13 系统进程管理
  • Spring Boot 项目集成camunda流程引擎
  • 2024.12.2工作复盘
  • Hot100 - 二叉树的中序遍历
  • docker build ubuntu ssh
  • 三维路径规划|基于黑翅鸢BKA优化算法的三维路径规划Matlab程序
  • day01(Linux底层)基础知识
  • flink学习(13)—— 重试机制和维表join
  • 第三方Cookie的消亡与Google服务器端标记的崛起
  • 微信小程序——文档下载功能分享(含代码)
  • Burp Suite 全面解析:开启你的 Web 安全测试之旅