Pytest学习-conftest

介绍

上次的文章和大家分享了一些使用fixtrue自定义测试用例的预置条件方法,这次再分享一个conftest的用法。

fixtrue是作用在一个py文件中,多个用例调用一个登录的方法,但是如果有多个.py文件都需要进行使用登录方法的话,就不能把登录的方法写到一个用例中去了,这时候就需要使用conftest.py这个配置文件来进行一些基础配置操作,这样其他的.py文件执行时,pytest可以从conftest.py文件中自动读取相应的配置和方法。

在这里插入图片描述

说明

当我们使用conftest.py配置时需要注意以下几点:

  1. conftest.py配置脚本名称是固定的,不能进行修改,否则pytest会识别不到。

  2. conftest.py必须要与其他运行的用例在同一个package下,而且还需要有一个__init__.py文件,如图所示。
    在这里插入图片描述

  3. 当用例执行时需要用到conftest.py中的配置时,不需要进行导入、应用,类似from ** import ** ,pytest用例会自行进行查找的。
    在这里插入图片描述

代码演示

1、首先新建一个package包,然后再该包下先建一个conftest.py文件和test_fixtrue.py文件。
2、在conftest.py文件中输入以下代码:

#-*- coding:utf-8 -*-

import pytest
'''
当有多个pu文件都需要调用这个登录功能的话,可以使用conftest的配置文件,
单独管理一些预置的操作场景,pytest里面默认读取conftest.py里面的配置
1、conftest.py配置脚本名称时固定的,不能改名称
2、conftest.py与运行的用例要在同一个package下,并且有__init__.py文件
3、不需要import导入conftest.py,pytest用例会自动查找

'''
@pytest.fixture
#登录方法
def login():
    print('输入账号,密码先登录123')

3、打开test_fixtrue.py文件输入以下代码:

#-*- conding:utf-8 -*-
import pytest

def test_s1(login):
    print('用例1:登录之后才能做其他的事务动作')

def test_s2():
    print('用例2:不需要登录,操作222')

def test_s3(login):
    print('用例3:登录之后其他动作333')

if __name__ == '__main__':
    pytest.main(['-s','test_fixture.py'])

4、输入完成功,我们运行test_fixtrue.py文件,查看结果:
在这里插入图片描述
从运行结果可以看出,test_fixtrue中并没有login方法,但是它自动去conftest.py中找到了login方法并成功应用。

如果此时我们将conftest.py名称修改成conftest123.py后再次运行test_fixtrue就会报错,因为pytest并没有找到conftest.py文件,当然了,login方法也肯定没有找到。
在这里插入图片描述
5、此时我们再新建一个test_fixtrue2.py,用例中也需要使用登录方法,代码如下,从结果可以看出test_fixture2同样成功使用了conftest.py中的login方法。

#-*- coding:utf-8 -*-

import pytest

def test_s4(login):
    print('用例4:登录之后再进行其他事务的操作')

def test_s5():
    print('用例5:不需要登录,直接进行事务的操作!')

if __name__ == '__main__':
    pytest.main(['-s','test_fixture2.py'])

在这里插入图片描述

总结

以上就和大家介绍了一下conftest.py的使用方法,在今后的实际工作中需要多个.py文件公共使用一个方法时,我们就可以把该方法写到conftest中去,这样就大大减少了配置的时间,而且代码看起来也比较简洁。

端午的第二天,喜欢的麻烦大家点个赞吧!
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/sl01224318/article/details/117876870