Python自动化测试中yaml文件读取操作


Posted in Python onAugust 20, 2020

什么是yaml

  • 一种标记语言。yaml 是专门用来写配置文件的语言,非常简洁和强大
  • 更直观,更方便,有点类似于json格式
  • yaml文件格式:test.yaml

安装yaml

pip install pyyaml

yaml基本语法规则

  • 大小写敏感
  • 使用缩进表示层级关系
  • 缩进时不允许使用Tab键,只允许使用空格。
  • 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
  • #表示注释,从这个字符一直到行尾,都会被解析器忽略,这个和python的注释一样

键值对(dict)

yaml文件

user: admin
pwd: 123456

用python读取yaml文件案例如下,先用open方法读取文件数据,再通过load方法转成Python可读取的对像,这个load跟json里面的load是相似的。

#! /usr/bin/python3
# -*- coding:utf-8 -*-

# @Time : 2020/8/17 9:23
# @Author : 码上开始

import yaml

# 定义yaml文件路径
yaml_path = "E:\\study\\date.yaml"
# 打开yaml文件
file = open(yaml_path, "r", encoding="utf-8")
# 读取
string = file.read()
dict = yaml.load(string)
# 转换后数据类型为:dict
print(type(dict))
print(dict)
# 运行结果:
{'usr': 'admin', 'pwd': 123456}

序列(list)

yaml里面写一个数组,前面加一个‘-'符号,如下

- admin1
- admin2
- admin3
#! /usr/bin/python3
# -*- coding:utf-8 -*-

# @FileName: day6.py
# @Time : 2020/8/17 9:23
# @Author : 码上开始

import yaml

# 定义文件路径
yaml_path = "E:\\study\\date.yaml"
file = open(yaml_path, "r", encoding="utf-8")
string = file.read()
print(string)
# 转换后数据类型为列表
list = yaml.load(string, Loader=yaml.FullLoader)
print(list)
# 运行结果
<class 'list'>
['admin1', 'admin2', 'admin3']

纯量(str)

# 布尔值true/false
n: true
# int
n1: 12
# float
n2: 12.3
# None
n3: ~

{'n': True, 'n1': 12, 'n2': 12.3, 'n3': None}

混合使用

- usr:
 name: admin
 pwd: 123456

- mail:
 user: xxx@qq.com
 pwd: 123456

运行结果:
[{'usr': {'name': 'admin', 'pwd': 123456}}, {'mail': {'user': 'xxx@qq.com', 'pwd': 123456}}]

练习
1.熟悉以上基本方法
2.将其运用到自动化测试代码中

到此这篇关于Python自动化测试中yaml文件读取操作的文章就介绍到这了,更多相关Python yaml文件读取操作内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
深入解析Python中的lambda表达式的用法
Aug 28 Python
举例讲解Python中的list列表数据结构用法
Mar 12 Python
Python数据类型详解(三)元祖:tuple
May 08 Python
Python实现Mysql数据库连接池实例详解
Apr 11 Python
Python中的二维数组实例(list与numpy.array)
Apr 13 Python
Ubuntu下升级 python3.7.1流程备忘(推荐)
Dec 10 Python
对pandas的算术运算和数据对齐实例详解
Dec 22 Python
python数据处理之如何选取csv文件中某几行的数据
Sep 02 Python
Python3 获取文件属性的方式(时间、大小等)
Mar 12 Python
python进行参数传递的方法
May 12 Python
python如何变换环境
Jul 21 Python
Django返回HTML文件的实现方法
Sep 17 Python
通过代码实例解析Pytest运行流程
Aug 20 #Python
Python爬虫实现自动登录、签到功能的代码
Aug 20 #Python
python openCV实现摄像头获取人脸图片
Aug 20 #Python
Python实现自动签到脚本功能
Aug 20 #Python
python如何随机生成高强度密码
Aug 19 #Python
python实现图片转换成素描和漫画格式
Aug 19 #Python
python+django+selenium搭建简易自动化测试
Aug 19 #Python
You might like
php实现两表合并成新表并且有序排列的方法
2014/12/05 PHP
thinkPHP实现将excel导入到数据库中的方法
2016/04/22 PHP
thinkPHP基于ajax实现的菜单与分页示例
2016/07/12 PHP
PHP使用mysqli同时执行多条sql查询语句的实例
2019/03/22 PHP
List Information About the Binary Files Used by an Application
2007/06/18 Javascript
jqGrid jQuery 表格插件测试代码
2011/08/23 Javascript
浅谈checkbox的一些操作(实战经验)
2013/11/20 Javascript
JS获取select-option-text_value的方法
2013/12/26 Javascript
使用JS或jQuery模拟鼠标点击a标签事件代码
2014/03/10 Javascript
JavaScript判断数字是否为质数的方法汇总
2016/06/02 Javascript
KnockoutJS 3.X API 第四章之表单textInput、hasFocus、checked绑定
2016/10/11 Javascript
VUE2实现事件驱动弹窗示例
2017/10/21 Javascript
JS实现的检验身份证格式并输出出生日期,年龄,性别,出生地示例
2019/05/17 Javascript
使用pkg打包ThinkJS项目的方法步骤
2019/12/30 Javascript
Vue实现可移动水平时间轴
2020/06/29 Javascript
[01:12]DOTA2次级职业联赛 - Newbee.Y 战队宣传片
2014/12/01 DOTA
python list使用示例 list中找连续的数字
2014/01/27 Python
python同时给两个收件人发送邮件的方法
2015/04/30 Python
在python的类中动态添加属性与生成对象
2016/09/17 Python
python清除字符串前后空格函数的方法
2018/10/21 Python
python3+PyQt5 实现Rich文本的行编辑方法
2019/06/17 Python
python实现两个dict合并与计算操作示例
2019/07/01 Python
Python绘制堆叠柱状图的实例
2019/07/09 Python
Pycharm debug调试时带参数过程解析
2020/02/03 Python
如何在django中添加日志功能
2020/02/06 Python
python网络编程socket实现服务端、客户端操作详解
2020/03/24 Python
anaconda安装pytorch1.7.1和torchvision0.8.2的方法(亲测可用)
2021/02/01 Python
微信浏览器取消缓存的方法
2015/03/28 HTML / CSS
数字漫画:comiXology
2020/06/13 全球购物
历史学专业毕业生求职信
2013/09/27 职场文书
小学班主任事迹材料
2014/12/17 职场文书
师德师风个人总结
2015/02/06 职场文书
辞职申请书范本
2019/05/20 职场文书
读《方与圆》有感:交友方圆有度
2020/01/14 职场文书
vue二维数组循环嵌套方式 循环数组、循环嵌套数组
2022/04/24 Vue.js
SQL Server 中的事务介绍
2022/05/20 SQL Server