一、目的
在接口自动化测试使用yaml文件写测试数据时,经常会使用到yaml文件中的某个值需要引用另外一个yaml文件中的值,非常头疼,下面就解决了这个问题:
案例:
a.yaml
id: 1
name: wang
age: 18
b.yaml
info: 这里要引用a.yaml
sex: boy
解:
b.yaml
info: info: !include a.yaml
sex: boy
dome.yaml
需要安装一个pyyaml-include
from yamlinclude import YamlIncludeConstructor
import yaml
def add_base_yaml(rootfile, basefile):
"""
rootfile:需要引用的文件路劲(b.yaml)
basefile:被引用文件的根目录(a.yaml的上级文件夹目录)
"""
YamlIncludeConstructor.add_to_loader_class(loader_class=yaml.FullLoader, base_dir=basefile)
with open(rootfile) as f:
data = yaml.load(f, Loader=yaml.FullLoader)
return data
if __name__ == '__main__':
print(add_base_yaml(r"C:\Users\虎克\Desktop\apiAutoTest\data\b.yaml",r"C:\Users\虎克\Desktop\apiAutoTest\data"))
结果如下:
![IKR8I%EQ}P_DKPSAB)WCXN.png