pytest之通过@pytest.fixture()来实现部分用例前后置
一、@pytest.fixture()的5个参数含义
@pytest.fixture(scope="", params="", autouse="", ids="", name="")
1
scope:表示被@pytest.fixture()方法标记的作用域。functions(默认)、class、moudle、package/session
params:参数化(支持,列表,元组,字典列表[{},{},{}],字典元组({},{},{}) )
autouse=True:自动执行,默认False
ids:参数化时,给每一个值设置一个变量名,意义不大
name:给@pytest.fixture()标记的方法取一个别名
二、初级用法-前后置
步骤一:定义fixture函数(函数名不固定);
步骤二:将函数名作为参数写入用例方法;
yield作用:带有yield的函数是一个迭代器,函数返回某个值时,会停留在某个位置,返回函数值后,会在前面停留的位置继续执行,直到程序结束
二、前后置-autouse=Ture
autouse=True:自动执行,默认False,开启为True后,将不需要主动调用也能使用
比setup 和 teardown更好用,更灵活
三、修改scope=“class”,在类的前后置
(module、package/session 原理同)
四、参数params的使用
params:参数化(支持,列表,元组,字典列表[{},{},{}],字典元组({},{},{}) )
**固定写法:**原理:params将参数遍历依次传给request,然后再传入添加该fixture的用例函数
该写法是固定的
五、使用ids给每个参数设置变量
ids:参数化时,给每一个值设置一个变量名,意义不大