python读取、写入yaml文件

2021-05-02  本文已影响0人  sai德很黑

在自动化测试中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只能写入一个数据,若我要写入返回结果、测试结果、执行时间,写入方法还有待优化,有更好的方法可以下方指点指点

上一篇 下一篇

猜你喜欢

热点阅读