前言
fixture里面有个scope参数可以控制fixture的作用范围:session > module > class > function
fixture作用范围
fixture里面有个scope参数可以控制fixture的作用范围:session > module > class > function
function 每一个函数或方法都会调用
class 每一个类调用一次,一个类可以有多个方法
module,每一个.py文件调用一次,该文件内又有多个function和class
session 是多个文件调用一次,可以跨.py文件调用,每个.py文件就是module
scope=”function”
@pytest.fixture()如果不写参数,默认就是scope=”function”,它的作用范围是每个测试用例来之前运行一次,销毁代码在测试用例运行之后运行。
运行结果:
用例放到类里面也一样
scope=”class”
fixture为class级别的时候,如果一个class里面有多个用例,都调用了此fixture,那么此fixture只在该class里所有用例开始前执行一次
运行结果:
scope=”module”
fixture为module级别时,在当前.py脚本里面所有用例开始前只执行一次
运行结果
scope=”session”
fixture为session级别是可以跨.py模块调用的,也就是当我们有多个.py文件的用例时候,如果多个用例只需调用一次fixture,那就可以设置为scope=”session”,并且写到conftest.py文件里
conftest.py文件名称是固定的,pytest会自动识别该文件。放到工程的根目录下,就可以全局调用了,如果放到某个package包下,那就只在该package内有效
test_fixture11.py和test_fixture12.py用例脚本
如果想同时运行test_fixture11.py和test_fixture12.py,在cmd执行
pytest -s test_fixture11.py test_fixture12.py
——pytest结合selenium自动化完整版————
全本购买方式,百度搜索:百度阅读
再搜索:pytest
领取专属 10元无门槛券
私享最新 技术干货