在自动化测试中yaml文件可以存放测试数据,也可以存放静态配置文件。
配置文件三种形式(.ini、.py、.yaml).ini格式在这里:python配置文件中的方法以及封装
一、导入模块 PyYAML
pip install PyYAML
二、yaml文件格式
1、文件以.yaml或者(.yml)结尾
- #列表
url: 'url' #字典
method: 'post'
header: {"Content-Type":"application/json"}
data: {"username":"zhangsaen32", "password":"a1234567"}
expect: 200 #默认读取出来类型是int,要转字符串可以加 “”
#表示是列表嵌套字典
[{'url': 'url', 'method': 'post', 'header': {'Content-Type': 'application/json'}, 'data': {'username': 'zhangsaen32', 'password': 'a1234567'}, 'expect': 200}]
三、读取、写入yaml文件
# -*- coding: UTF-8 -*-
"""
@FileName: read_yaml.py
@Author: 公众号:《测试小白从零开始》 简书作者:sai德很黑
@time: 2021/05/02
"""
import yaml
'''
配置文件读取、写入封装
'''
class YamlHandler:
def __init__(self,file):
'''
:param file: yamal文件路径
'''
self.file = file
# 读取yaml数据
def read_yaml_data(self):
with open(self.file,encoding='utf-8') as f:
data = yaml.load(f.read(),Loader=yaml.FullLoader)
return data
#写入yaml数据
def write_yaml_data(self,key, value):
"""
:param key: 字典的key
:param value: 写入的值
:return:
"""
with open(self.file, 'r', encoding="utf-8") as f:
doc = yaml.safe_load(f)
for item in doc:
item[key] = value
with open(self.file, 'w', encoding="utf-8") as f:
yaml.safe_dump(doc, f, default_flow_style=False,allow_unicode=True)
四、还未解决的坑
目前写入yaml只能写入一个数据,若我要写入返回结果、测试结果、执行时间,写入方法还有待优化,有更好的方法可以下方指点指点
网友评论