pytest学习和使用9-fixture中conftest.py如何使用?
创始人
2024-01-30 13:58:38
0

9-fixture中conftest.py如何使用?

  • 1 引入
  • 2 conftest.py简介
  • 3 conftest.py特点
  • 4 实例
    • 4.1 conftest.py
    • 4.2 test_conftest1.py
    • 4.3 test_conftest2.py
  • 5 conftest.py优先级

1 引入

  • 之前学习使用fixture前置实现用例的登陆,当时在一个脚本中实现的;那如果其他的脚本也需要用到登陆,这样调用起来可能比较麻烦;
  • 所以我们可以把登陆的fixture放到conftest.py,让pytest去查找。

2 conftest.py简介

  • conftest.py是一个配置文件;
  • 可单独管理一些预置的操作场景;
  • pytest里面默认读取conftest.py里面的配置;
  • 可以理解为一个专门存放fixture的配置文件。

3 conftest.py特点

  • conftest.py配置脚本名称固定不可修改;
  • conftest.py与用例要在同一个pakage下,并且有__init__.py文件;
  • 不需要import导入 conftest.pypytest用例会自动查找

4 实例

  • 以下是两个用例都调用conftest.py:
    在这里插入图片描述

4.1 conftest.py

# -*- coding:utf-8 -*-
# 作者:NoamaNelson
# 日期:2022/11/17 
# 文件名称:conftest.py
# 作用:xxx
# 联系:VX(NoamaNelson)
# 博客:https://blog.csdn.net/NoamaNelsonimport pytest@pytest.fixture()
def open():print("打开浏览器")yieldprint("关闭浏览器")

4.2 test_conftest1.py

# -*- coding:utf-8 -*-
# 作者:NoamaNelson
# 日期:2022/11/17 
# 文件名称:test_conftest1.py
# 作用:conftest.py的使用
# 联系:VX(NoamaNelson)
# 博客:https://blog.csdn.net/NoamaNelsonimport pytestdef test_case1(open):print("执行用例1......")def test_case2(open):print("执行用例2......")if __name__ == "__main__":pytest.main(["-s", "test_conftest1.py"])
test_conftest1.py::test_case1              打开浏览器
PASSED                                     [ 50%]执行用例1......关闭浏览器test_conftest1.py::test_case2              打开浏览器
PASSED                                     [100%]执行用例2......关闭浏览器============================== 2 passed in 0.02s ==============================

4.3 test_conftest2.py

# -*- coding:utf-8 -*-
# 作者:NoamaNelson
# 日期:2022/11/17 
# 文件名称:test_conftest2.py
# 作用:conftest.py的使用
# 联系:VX(NoamaNelson)
# 博客:https://blog.csdn.net/NoamaNelsonimport pytestdef test_case3(open):print("执行用例3......")def test_case4(open):print("执行用例4......")if __name__ == "__main__":pytest.main(["-s", "test_conftest2.py"])
test_conftest2.py::test_case3              打开浏览器
PASSED                                     [ 50%]执行用例3......关闭浏览器test_conftest2.py::test_case4              打开浏览器
PASSED                                     [100%]执行用例4......关闭浏览器============================== 2 passed in 0.02s ==============================

5 conftest.py优先级

  • 前边说了conftest.py需要和用例在同一个package下,那如果不同的位置有多个conftest.py,如何判断执行顺序呢?
  • conftest.py作用范围是当前目录包括子目录里的测试模块;

A、测试框架根目录创建conftest.py文件,文件中的Fixture的作用范围是所有测试模块;
B、某个单独的测试文件夹里创建conftest.py文件,文件中Fixture的作用范围,就仅局限于该测试文件夹里的测试模块;该测试文件夹外的测试模块,或者该测试文件夹外的测试文件夹,是无法调用到这个conftest.py文件中的Fixture。
C、测试框架根目录和子包中都有conftest.py文件,并且这两个conftest.py文件中都有一个同名的Fixture,实际生效的是测试框架中子包目录下的conftest.py文件中配置的Fixture。
D、一个用例可以添加多个conftest.py文件中定义的Fixture夹具。

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...