• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Pytest中conftest.py的用法

    前言

    在之前介绍fixture的文章中,我们使用到了conftest.py文件,那么conftest.py文件到底该如何使用呢,下面我们就来详细了解一下conftest.py文件的特点和使用方法吧

    什么是conftest.py

    我们之前了解了fixture,fixture可以直接定义在测试脚本中,但是有些时候,我们希望一个fixture可以被复用,这就需要对fixture进行集中管理,Pytest使用文件conftest.py集中管理固件.在复杂的项目中,可以在不同的目录层级定义conftest.py,其作用域为其所在的目录和子目录,通常情况下,conftest.py@pytest.fixture()会结合使用,来实现全局的前后置处理。

    conftest.py特点

    conftest.py用法

    在我们实际的测试中,conftest.py文件需要结合fixture来使用,所以fixture中参数scope也适用conftest.py中fixture的特性,这里再说明一下

    conftest.py实际案例

    我们按照这样的目录新建一个项目

    在根目录conftestdemo下

    根目录中的conftest.py文件中,一般写全局的fixture,比如登录

    conftest.py

    import pytest
    
    
    @pytest.fixture(scope="session")
    def login():
        print("***登录成功,返回用户名***")
        name = "rockche"
        yield name
        print("***退出登录***")
    
    
    @pytest.fixture(autouse=True)
    def get_name(login):
        name = login
        print(f"--每个用例都调用外层fixiture:打印用户name:{name}--")

    根目录下的测试用例

    test_1.py

    def test_get_name(login):
        name = login
        print("***基础用例:获取用户name***")
        print(f"用户名:{name}")

    运行conftestdemo下的所有用例

    run.py

    import pytest
    
    if __name__ == '__main__':
        pytest.main(["-s", "../conftestdemo/"])

    test_baidu目录下

    配置针对baidu网站的测试用例独有的fixture

    conftest.py

    import pytest
    
    
    @pytest.fixture(scope="module")
    def open_baidu(login):
        name = login
        print(f"用户 {name} 打开baidu")

    test_case1.py

    def test_case2_01(open_baidu):
        print("搜索pytest")
    
    
    def test_case2_02(open_baidu):
        print("搜索博客园")

    test_cnblogs目录下

    没有__init__.py文件也没有conftest.py文件

    test_case1.py

    def test_no_fixture(login):
        print("没有__init__文件,直接进入cnblogs", login)

    test_taobao目录下

    配置针对taobao网站的测试用例独有的fixture

    conftest.py

    import pytest
    
    
    @pytest.fixture(scope="function")
    def open_taobao(login):
        name = login
        print(f"用户 {name} 进入淘宝")

    test_case1.py

    class TestTaobao:
        def test_case1_01(self, open_taobao):
            print("选购商品")
    
        def test_case1_02(self, open_taobao):
            print("进入结算界面")

    运行run.py

    到此这篇关于Pytest中conftest.py的用法的文章就介绍到这了,更多相关Pytest conftest.py内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • pytest conftest.py文件的使用讲解
    • python pytest进阶之conftest.py详解
    上一篇:Python实现8种常用抽样方法
    下一篇:Python移位密码、仿射变换解密实例代码
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Pytest中conftest.py的用法 Pytest,中,conftest.py,的,用法,