python之yaml技术(可用于写接口自动化的测试用例文件)

一.yaml介绍

yaml文件是一种配置文件类型,相比较ini,conf配置文件来说,更加的简洁,操作也更加简单,同时可以存放不同类型的数据。

yaml使用场景

  • 配置文件

  • 测试用例

二.yaml语法

  • 大小写敏感
  • 使用缩进表示层级关系
  • 缩进时不允许使用Tab,只允许使用空格
  • 缩进的空格数目不重要,只要相同层级的元素左对齐即可
  • # 表示注释,从它开始到行尾都被忽略

三.环境准备

第一步:打开pycharm创建一个项目pythonProject20231125

第二步:创建一个包(Python Package)名为config,再创建一个file名为conf.yaml

第三步:创建一个包(Python Package)名为tools,再创建一个Python File名为yamlControl.py

conf.yaml是配置文件

yamlControl模块是读取 conf.yaml配置数据的

四.yaml使用

1.字典

格式

# 下面格式读到Python里会是个dict(字典)
name: 灰蓝
age: 0
job: Tester

查看yaml数据(通过yamlControl模块写代码查看配置文件输出数据)

import yaml
#读取yaml文件-单个文件
# 加上 ,encoding='utf-8',处理配置文件中含中文出现乱码的情况
def get_yaml_data(fileDir):#打开文件fo=open(fileDir,'r',encoding='utf-8')#调用方法res=yaml.load(fo,Loader=yaml.FullLoader)return res
if __name__ == '__main__':res=get_yaml_data('../config/conf.yaml')print(res)

运行结果:

2.列表

格式

# 下面格式读到Python里会是个list(列表)
- 灰蓝
- 0
- Tester

运行结果:

3.复合结构

举例(列表里套字典):

# 下面格式读到Python里是个list里包含dict
- name: 灰蓝age: 0job: Tester
- name: Jamesage: 30

运行结果:

4.基本类型

yaml中有以下基本类型:

  • 字符串

  • 整型

  • 浮点型

  • 布尔型

  • null

  • 时间

  • 日期

我们写个例子来看下:

# 这个例子输出一个字典,其中value包括所有基本类型
str: "Hello World!"
int: 110
float: 3.141
boolean: true  # or false
None: null  # 也可以用 ~ 号来表示 null
time: 2016-09-22t11:43:30.20+08:00  # ISO8601,写法百度
date: 2016-09-22  # 同样ISO8601

运行结果:

D:\python3.9\python.exe D:\sonQin\pythonProject20231125\tools\yamlControl.py 
{'str': 'Hello World!', 'int': 110, 'float': 3.141, 'boolean': True, 'None': None, 'time': datetime.datetime(2016, 9, 22, 11, 43, 30, 200000, tzinfo=datetime.timezone(datetime.timedelta(seconds=28800))), 'date': datetime.date(2016, 9, 22)}Process finished with exit code 0

5.空格或特殊字符

注意:如果字符串没有空格或特殊字符,不需要加引号,但如果其中有空格或特殊字符,则需要加引号了

举例

str: 灰蓝
str1: "Hello World"
str2: "Hello\nWorld"

运行结果:

6.单引号与双引号

这里要注意单引号和双引号的区别,单引号中的特殊字符转到Python会被转义,也就是到最后是原样输出了,双引号不会被Python转义,到最后是输出了特殊字符;

来个例子理解下:

str1: 'Hello\nWorld'
str2: "Hello\nWorld"

运行结果:

7.引用

&* 用于引用

语法

name: &name 灰蓝
tester: *name

运行结果:

8.强制转换

yaml是可以进行强制转换的,用 !! 实现,如下:

str: !!str 3.14
int: !!int "123"

运行结果:

明显能够看出123被强转成了int类型,而float型的3.14则被强转成了str型。

9.分段

在同一个yaml文件中,可以用 --- 来分段,这样可以将多个文档写在一个文件中

---
name: James
age: 20
---
name: Lily
age: 19

这时候我们就得用到我们的 load_all() 方法出场了,load_all() 方法会生成一个迭代器,在yamlControl模块中添加一个get_yaml_datas(fileDir)方法,可以用for循环输出出来:

yamlControl模块新增的代码(注意调用的是load_all()方法)

运行结果:

10.写yaml格式的内容

调用dump()方法

举例

在yamlControl模块新增set_yaml_data(fileDir)方法

运行结果:

最后conf.yaml文件和yamlControl.py文件在资源绑定中有,如有需要可自行下载

(如有问题,可在评论区留言)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/173909.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Pytorch深度学习实战2-1:详细推导Xavier参数初始化(附Python实现)

目录 1 参数初始化2 Xavier参数初始化原理2.1 前向传播阶段2.2 反向传播阶段2.3 可视化思考 3 Python实现 1 参数初始化 参数初始化在深度学习中起着重要的作用。在神经网络中,参数初始化是指为模型中的权重和偏置项设置初始值的过程。合适的参数初始化可以帮助模型…

单片机毕设实物买的成品,论文是自己查资料和照着实物写的

单片机毕设实物买的成品,论文是自己查资料和照着实物写的,算学术不端吗? 很多人的想法可能是这样的: 一般来说,毕业论文是独立完成的学术研究,需要表明作者自己的思考和研究成果,应该包括自己的…

Google Shopping Action

Google Shopping Action是Google推出的一项在线购物服务,可以帮助零售商将产品推广和销售到Google平台上的消费者中。通过Google Shopping Action,用户可以在谷歌搜索页面上直接购买商品,而不需要离开搜索结果页面。 Google Shopping Action的…

饺子馆外卖点餐系统小程序效果如何

餐饮行业所涵盖的细分类目非常广,同时又是经济发展的重要支撑,市场规模非常高。饺子是很多人非常喜欢吃的食物,尤其过年的时候,必是少不了几碗饺子,平时也有大量人前往饺子馆。 但相对比火锅、炒菜馆则少些竞争力&…

原创文章生成器-批量原文高质量伪原创

在信息爆炸的时代,创作者们面临的挑战愈发严峻。写一篇原创文章,不仅需要脑洞大开,还得担心自己的文字是否能够迎合读者口味。原创文章生成器只需输入标题或关键词,即可轻松生成原创文章。而与此同时,147SEO改写软件也…

Vatee万腾的数字创新征途:vatee科技力量的独特奇点

在数字化的时代浪潮中,Vatee万腾如一颗耀眼的明星,以其独特的科技奇点引领着数字创新的征途。无论是在人工智能、大数据、云计算,还是智能化领域,Vatee万腾都展现出了与众不同的创新力量,为科技征途描绘了独一无二的奇…

【Springboot系列】SpringBoot整合WebSocket,既然如此简单(含源码)

文章目录 前言:什么是WebSocket?Spring Boot中的WebSocket支持WebSocket和HTTP优劣势WebSocket的优势:1.实时性:2.较低的延迟:3.较小的数据传输量:4.更好的兼容性: HTTP的优势:1.简单…

教师如何高质量备课

备课是教学工作中不可或缺的一部分。高质量的备课不仅可以提高课堂效率,还可以更好地激发学生的学习兴趣和积极性。那么,如何高质量备课呢? 深入了解学生 备课的目的是教授知识,让学生掌握知识。因此,了解学生的需求和…

「直播预告」替代 Oracle,我们还有多长的路要走?

数字经济浪潮席卷全球,我国数字经济也进入快速发展阶段,作为数字化重要载体,国产软件的重要性不言而喻。近年来,国际局势复杂多变,在客观要求和主观需求的双重驱动下,核心技术自主可控的紧迫性也愈加凸显。…

​使用PotPlayer播放器查看软解和硬解4K高清视频时的CPU及GPU占用情况​

目录 1、问题说明 2、PotPlayer播放器介绍 3、视频的软解与硬解 4、使用PotPlayer查看4K高清视频软解和硬解时的CPU占用情况 4.1、使用软解时CPU和GPU占用情况 4.2、使用硬解时CPU和GPU占用情况 5、最后 VC常用功能开发汇总(专栏文章列表,欢迎订阅…

学嵌入式,已经会用stm32做各种小东西了,下一步是什么

学嵌入式,已经会用stm32做各种小东西了,下一步是什么,研究stm32的内部吗? 针对题主这种类型的,首先我想提出几个技术问题。 1,除了那几个常用的外设,stm32上集成的众多外设是否都有实际的使用经…

Day58权限提升-网站权限后台漏洞第三方获取

webshell 一般我们的渗透流程就是信息收集,发现漏洞,漏洞利用,一些漏洞成功之后获得一些相应的权限,还有一些是漏洞利用成功之后并没有取得的权限,而这个权限是要通过漏洞利用之后在利用其它地方取货的权限。 权限的获…

百度人工智能培训第二天笔记

参加了百度人工智能初步培训,主要是了解一下现在人工智能的基本情况,以便后续看可以参与一些啥? 下面就继续前一天的内容记录。 一、先做电动自行车的电梯里检测 先进行图片资料的上传与标注,这个昨天的最好也说了一下。 训练完后…

sql中的left join, right join 和inner join,union 与union all的用法

left join, right join 和inner join:这些都是SQL中用来连接两个或多个表的操作。 union,union all:用于合并两个或多个 SELECT 语句的结果。 但是有时候,对于Select出来的结果集不是很清楚。 假设我们有两张表。pers…

让CHAT简单说明下软件工程师的工作性质

问CHAT:软件工程师的工作性质是什么? CHAT回复:软件工程师的工作性质主要包括以下几点: 1. 解决问题:软件工程师的很大一部分工作就是解决问题,这可能是来自客户的特定需求,也可能是软件开发过…

现货黄金走势图下载与保存

MetaTrader 4 (MT4) 是一款在全球范围内广受欢迎的现货黄金交易软件,简单性和灵活性是其深受市场欢迎的原因。它的显示界面的主要部分由品种的走势图表组成,投资者可以在其中查看实时的行情走势。屏幕左上角是市场观察窗口,当中列出了平台所有…

NABOCUL集团专注科研创新 为内源护肤、护发提供更优选择

据权威媒体报道,日本知名化妆品集团NABOCUL Cosmetics株式会社研通过多年的科技创新和内源护肤研究,创新研发Olandu、TakuMin、“CIMIVOSOTUY”等核心成分,向中国消费者传递“关爱恒久之美”的理念,更好地释放内源护肤的独特魅力,为人们内源护肤、护发提供了全新选择。 据了解,…

JVM中的双亲委派模型

双亲委派模型(Parent-Delegation Model)是Java类加载器(ClassLoader)机制的一种实现方式。它是Java中实现类加载的一种层次结构模型。 双亲委派模型的工作过程是:在Java中,每个类加载器实例都有一个父类加载…

多头注意力机制基本概念

文章目录 基本概念模型小结 基本概念 我们可以用独立学习得到的h组不同的 线性投影来变换查询、键和值。 然后,这h组变换后的查询、键和值将并行地送到注意力汇聚中。 最后,将这h个注意力汇聚的输出拼接在一起, 并且通过另一个可以学习的线性…

Keil报错_Error:CreateProcess failed,Command:‘xxx\fromelf.exe‘

1、报错信息 2、分析及解决 错误原因:fromelf.exe路径错误,无法执行命令。 发生情景:编译从另一个电脑拷贝的代码时。 解决方法: 1、当你不需要生成bin文件时,可以选择不执行这个命令。(去掉√&#xf…