在进行pytest 脚本编写的过程中,需要对项目中很多文件进行读取,例如:路径、yaml 用例、删除保存的文件、保存token等。
以下提供常见的提取方法封装,可以起到引导作用:
yamlUtils.py
import os
import yaml
# 获取项目根目录
def get_object_path():
# 获取当前项目的绝对路径
current = os.path.abspath(__file__)
BASE_DIR = os.path.dirname(os.path.dirname(current))
# 定义根目录
_base_path = BASE_DIR + os.sep
return _base_path
# 读取yaml文件
def read_yaml(path):
with open(path, 'r', encoding='utf-8') as f:
value = yaml.load(stream=f, Loader=yaml.FullLoader)
return value
# 读取extract.yaml文件
def read_extract_yaml(key):
with open(get_object_path() + "/extract.yaml", 'r', encoding='utf-8') as f:
value = yaml.load(stream=f, Loader=yaml.FullLoader)
return value[key]
# 写入extract.yaml文件
def write_extract_yaml(data):
print("写 extract yaml 文件了",get_object_path())
with open(get_object_path() + "/extract.yaml", 'a', encoding='utf-8') as f:
yaml.dump(data=data, stream=f, allow_unicode=True)
# 清除extract,yaml文件
def clear_extract_yaml():
with open(get_object_path() + "/extract.yaml", 'w', encoding='utf-8') as f:
f.truncate()
# 读取config.yaml文
def read_config_yaml(one_nodo, two_node):
with open(get_object_path() + "/config.yaml", 'r', encoding='utf-8') as f:
value = yaml.load(stream=f, Loader=yaml.FullLoader)
return value[one_nodo][two_node]
# 读取数据的yaml
def read_data_yaml(yaml_path):
with open(get_object_path() + yaml_path, 'r', encoding='utf-8') as f:
value = yaml.load(stream=f, Loader=yaml.FullLoader)
return value