首页 > 其他 > 详细

pytest之conftest

时间:2021-01-08 22:46:47      阅读:45      评论:0      收藏:0      [点我收藏+]

fixture

fixture(scope=‘function‘,params=None,autouse=False,ids=None,name=None):
fixture里面有个scope参数可以控制fixture的作用范围,scope:有四个级别参数"function"(默认),"class","module","session

params:一个可选的参数列表,它将导致多个参数调用fixture功能和所有测试使用它。
autouse:如果True,则为所有测试激活fixture func可以看到它。如果为False则显示需要参考来激活fixture
ids:每个字符串id的列表,每个字符串对应于params这样他们就是测试ID的一部分。如果没有提供ID它们将从params自动生成
name:fixture的名称。这默认为装饰函数的名称。如果fixture在定义它的统一模块中使用,夹具的功能名称将被请求夹具的功能arg遮蔽,解决这个问题的一种方法时将装饰函数命令"fixture_<fixturename>"然后使用"@pytest.fixture(name=‘<fixturename>‘)"。

1.firture相对于setup和teardown来说应该有以下几点优势

scope:有四个级别参数"function"(默认),"class","module","session

  • 命名方式灵活,不局限于setup和teardown这几个命名
  • conftest.py 配置里可以实现数据共享,不需要import就能自动找到一些配置
  • scope="module" 可以实现多个.py跨文件共享前置, 每一个.py文件调用一次
  • scope="session" 以实现多个.py跨文件使用一个session来完成多个用例
  • scope="class":每一个类调用一次,一个类中可以有多个方法
  • scope="function":每一个函数或方法都会调用

2、fixture的作用范围

fixture里面有个scope参数可以控制fixture的作用范围:session>module>class>function

conftest.py配置文件

单独管理一些预置的操作场景,pytest默认读取conftest.py配置文件

使用场景:

1、每个接口需共用到的token

2、每个接口需共用到的测试用例数据

3、每个接口需共用到的配置信息

conftest.py结合fixture的 scope使用:

1. scope默认为function

conftest.py

import pytest


@pytest.fixture()
def login():
    print("this is login method")

test_conftest.py

技术分享图片
import pytest


class TestConftest:

    def setup_class(self):
        print(setup class)

    @pytest.mark.usefixtures(login)
    def test_one(self):
        print(test one case)
        flag = 1
        if flag:
            print(测试111)

    @pytest.mark.usefixtures(login)
    def test_two(self):
        print(test two case)

    def test_three(self):
        print(test three case)

    def teardown_class(self):
        print(teardown class)
View Code

运行结果:

技术分享图片

 

 2. scope="class",整个用例只运行一次

conftest.py

import pytest


@pytest.fixture(scope="class")
def login():
    print("this is login method")

test_conftest.py代码不改

运行结果:

技术分享图片

 

pytest之conftest

原文:https://www.cnblogs.com/SomnusWho/p/14253276.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!