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:参数化时,给每一个值设置一个变量名,意义不大

 

 

 

posted @ 2022-04-01 17:04  冬天里的狐狸  阅读(73)  评论(0编辑  收藏  举报