前言
- 当项目复杂度到一定程度时,其中接口关联的程度一定会比较错综复杂,这种情况下可能出现一个场景,文件中会有特别多的
中间变量
,时间一久可能我们自己都搞不清楚, 所以我们需要将这些中间变量进行一个统一管理 -
- 中间变量统一管理
-
- 查看中间变量的值
解决方案
- 在项目根路径中新建yaml文件
extract.yaml
- 在common文件夹中新建
yaml_util.py
用来操作yaml文件 yaml_util.py
中 的内容为三个方向: 读, 写, 清空
代码如下
import os
import yaml
def read_yaml(key):
with open(os.getcwd() + "/extract.yaml", encoding="utf-8") as f:
value = yaml.load(stream=f, Loader=yaml.FullLoader)
return value[key]
def write_yaml(data):
with open(os.getcwd() + "/extract.yaml", encoding="utf-8", mode="a") as f:
yaml.dump(data, stream=f, allow_unicode=True)
def clear_yaml():
with open(os.getcwd() + "/extract.yaml", encoding="utf-8", mode="w") as f:
f.truncate()
- 此时我们在项目代码中就可以利用yaml文件中读取写入的方式进行统一了
- 但是问题又来了,由于我们的写入方法中传入的参数时“a”表示追加,所以每次运行时yaml文件中的数据都会重复且增加,如果改为“w”,那么yaml中的文件又只有一个数据,所以此时就需要pytest中的fixture出场配合我们在
yaml_util.py
中的clear_yaml
方法解决这个问题 - 在
conftest.py
文件中, 写入一下内容
import pytest
from common.yaml_util import clear_yaml
@pytest.fixture(scope="function", autouse=True)
def yaml_clear():
clear_yaml()