fixture里面有个scope参数可以控制fixture的作用范围:session>module>class>function
-function:每一个函数或方法都会调用
-class:每一个类调用一次,一个类中可以有多个方法
-module:每一个.py文件调用一次,该文件内又有多个function和class
-session:是多个文件调用一次,可以跨.py文件调用,每个.py文件就是module
调用fixture:
1:直接传fixture的函数参数名称
2.使用装饰器@pytest.mark.usefixtures()修饰需要运行的用例
3.叠加使用usefixtures
usefixture和传fixture区别:如果fixture有返回值,那么usefixture就无法获取到返回值
fixture有个autouse默认是false,没有开启,默认是function ,每个函数都会执行,只需要设置为autouse=True,就不用再去调用fixture
conftest.py在不同层级目录,优先级不同
/conftest.py
import pytest
@pytest.fixture(scope='session', autouse=True)
def login():
print('-----准备登陆-----')
/test/conftest.py
import pytest
@pytest.fixture(scope='session', autouse=True)
def bai_du():
print('-----登录百度页面-----')
/test/test0526.py
import pytest
class TestCase:
def test_login(self):
print('成功登录百度')
if __name__ == '__main__':
pytest.main(['-s', 'fixture0526.py'])
结果:
Original: https://blog.csdn.net/antyuki/article/details/125003661
Author: Yakadee
Title: 【自动化测试】pytest框架之fixture
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/775185/
转载文章受原作者版权保护。转载请注明原作者出处!