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 相关文章推荐
django开发之settings.py中变量的全局引用详解
Mar 29 Python
基于Django的ModelForm组件(详解)
Dec 07 Python
python中实现将多个print输出合成一个数组
Apr 19 Python
python求最大连续子数组的和
Jul 07 Python
python3实现多线程聊天室
Dec 12 Python
python for 循环获取index索引的方法
Feb 01 Python
Python for循环与range函数的使用详解
Mar 23 Python
pyqt5与matplotlib的完美结合实例
Jun 21 Python
django admin 添加自定义链接方式
Mar 11 Python
浅谈keras中自定义二分类任务评价指标metrics的方法以及代码
Jun 11 Python
Python开发入门——迭代的基本使用
Sep 03 Python
python绘图subplots函数使用模板的示例代码
Apr 30 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
使用网络地址转换实现多服务器负载均衡
2006/10/09 PHP
WordPress中登陆后关闭登陆页面及设置用户不可见栏目
2015/12/31 PHP
javascript 播放器 控制
2007/01/22 Javascript
javascript smipleChart 简单图标类
2011/01/12 Javascript
jquery js 重置表单 reset()具体实现代码
2013/08/05 Javascript
js操作label给label赋值及取label的值示例
2013/11/07 Javascript
js中数组(Array)的排序(sort)注意事项说明
2014/01/24 Javascript
JS获取当前日期时间并定时刷新示例
2021/03/04 Javascript
让html页面不缓存js的实现方法
2014/10/31 Javascript
js中split和replace的用法实例
2015/02/28 Javascript
JavaScript中获取纯正的undefined的方法
2016/03/06 Javascript
JS 中可以提升幸福度的小技巧(可以识别更多另类写法)
2018/07/28 Javascript
详解vue中的父子传值双向绑定及数据更新问题
2019/06/13 Javascript
JS实现点击下拉列表文本框中出现对应的网址,点击跳转按钮实现跳转
2019/11/25 Javascript
Vue中key的作用示例代码详解
2020/06/10 Javascript
[04:44]DOTA2英雄梦之声_第12期_矮人直升机
2014/06/21 DOTA
Python中列表、字典、元组数据结构的简单学习笔记
2016/03/20 Python
python运行时间的几种方法
2016/06/17 Python
Python中不同进制的语法及转换方法分析
2016/07/27 Python
Python入门之三角函数tan()函数实例详解
2017/11/08 Python
解决Python网页爬虫之中文乱码问题
2018/05/11 Python
python多进程使用及线程池的使用方法代码详解
2018/10/24 Python
在django admin中添加自定义视图的例子
2019/07/26 Python
Django接收自定义http header过程详解
2019/08/23 Python
pytorch加载自定义网络权重的实现
2020/01/07 Python
什么是CSS3 HSLA色彩模式?HSLA模拟渐变色条
2016/04/26 HTML / CSS
html5的自定义data-*属性与jquery的data()方法的使用
2014/07/02 HTML / CSS
服务之星获奖感言
2014/01/21 职场文书
陈安之励志演讲稿
2014/08/21 职场文书
少先队中队工作总结2015
2015/07/23 职场文书
学困生转化工作总结
2015/08/13 职场文书
2015年党风廉政建设个人总结
2015/08/18 职场文书
Python序列化与反序列化相关知识总结
2021/06/08 Python
SpringBoot集成Redis,并自定义对象序列化操作
2021/06/22 Java/Android
Shell脚本一键安装Nginx服务自定义Nginx版本
2022/03/20 Servers
Vue 打包后相对路径的引用问题
2022/06/05 Vue.js