YAML文件

这篇具有很好参考价值的文章主要介绍了YAML文件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

yaml是一种数据格格式,后缀是 .yml或 .yaml

用于配置文件以及编写测试用例

语法规则

使用规则

区分大小写

通过缩进表示层级,缩进使用空格非Tab

#注释

字符串一般不用双引号,默认就是字符串

数据类型

1.标量:最基本的数据类型

    • 整数
    • 浮点数
    • 字符串
    • 默认字符串不用引号
    • 单引号可表示字符串,用于转义特殊字符\
    • 双引号也可表示字符串,不转义
    • 布尔值

Null 对应 Python中的None

    • 日期时间类型

2.对象:键(空格)值对,类似dict

3.数组:用过一组同级别的-开头,类似数组

name :
  - name1 : 霸王
  - name2 : '霸\n王'
  - name3 : "霸\n王"
age : 25
height : 156.3
date : 2023-3-20 20:20:20
shenfen : null

读取文件中的所有数据类型

{'name': [{'name1': '霸王'}, {'name2': '霸\\n王'}, {'name3': '霸\n王'}], 'age': 25, 'height': 156.3, 'date': datetime.datetime(2023, 3, 20, 20, 20, 20), 'shenfen': None}

数据类型转换

使用!!+要转的数据类型

age: !!str 18 6

height: !!float "17.5"

引用的应用-用于重复出现多次的数据

&表示锚点,*引用锚点,<<合并到当前数据

name : &name
  - name1 : 霸王
  - name2 : '霸\n王'
  - name3 : "霸\n王"
age : 25
height : 156.3
date : 2023-3-20 20:20:20
shenfen : null
newname : *name
newnages:
  name100: name100
  <<: *name

{'name': [{'name1': '霸王'}, {'name2': '霸\\n王'}, {'name3': '霸\n王'}],

'age': 25,

'height': 156.3,

'date': datetime.datetime(2023, 3, 20, 20, 20, 20),

'shenfen': None,

'newname': [{'name1': '霸王'}, {'name2': '霸\\n王'}, {'name3': '霸\n王'}],

'newnages': {'name3': '霸\n王', 'name2': '霸\\n王', 'name1': '霸王', 'name100': 'name100'}}

YAML的读写和清空

python安装包

pip install pyyaml

读取
def read_yaml():
    with open("./test_case/login.yaml",encoding="utf-8") as f:
        value = yaml.safe_load(f)
        print(value)
写入
def write_yaml():
    with open("./test_case/login.yaml",encoding="utf-8",mode="a+") as f:
        date = {"sdad":"sdsadsa"}
        yaml.safe_dump(date,f)
清空
def clean_yaml():
    with open("./test_case/login.yaml", encoding="utf-8", mode="w") as f:
        f.truncate()

pytest的parametrize数据驱动

数据驱动:

@pytest.mark.parametrize(args_name,args_value)

args_name:参数名

args_value:参数值(只能是列表list或元祖tuple)

import pytest
import allure
@allure.epic("项目名称2")
@allure.feature("模块名称2")
class TestBpi:
    @allure.story("打印参数")
    @pytest.mark.parametrize("name", ["sidyoad", "sdysfysd", "fjdisifdfuo"])
    def test_name(self,name):
        print(name)

如果allure报告样式不显示过长参数,

修改:\venv\Lib\site-packages\allure_pytest\listener.py 中为 test_result.parameters.extend([])

-
  feature: 模块名称1
  story: 接口名称1
  title: 用例标题1
  request:
    method: get
    url: /cgi-bin/token
    params:
      "grant_type": "client_credential"
      "appid": "xx"
      "secret": "xx"
    headers: null
  validate: null
-
  feature: 模块名称2
  story: 接口名称2
  title: 用例标题2
  request:
    method: get
    url: /cgi-bin/token
    params:
      "grant_type": "client_credential"
      "appid": "xx"
      "secret": "xxx"
    headers: null
  validate: null
import pytest
import allure
from commons.yaml_utils import read_yaml

@allure.epic("项目名称2")
@allure.feature("模块名称2")
class TestApi:
    @allure.story("打印参数")
    @pytest.mark.parametrize("caseinfo", read_yaml("./test_case/a/login.yaml"))
    def test_name(self,caseinfo,base_url):
        allure.dynamic.title(caseinfo["title"])
        print("模块名称:%s"%caseinfo["feature"])
        print("接口名称:%s"%caseinfo["story"])
        print("用例标题:%s"%caseinfo["title"])
        print("请求方式:%s"%caseinfo["request"]["method"])
        print("请求路径:%s"%base_url+caseinfo["request"]["url"])
        print("请求参数:%s"%caseinfo["request"]["params"])
        print("请求头:%s"%caseinfo["request"]["headers"])
        print("断言:%s"%caseinfo["validate"])
# 操作工具包
import yaml
def read_yaml(yaml_path):
    with open(yaml_path,encoding="utf-8") as f:
        value = yaml.safe_load(f)
        return value

def write_yaml():
    with open("./test_case/login.yaml",encoding="utf-8",mode="a+") as f:
        date = {"sdad":"sdsadsa"}
        yaml.safe_dump(date,f)

def clean_yaml():
    with open("./test_case/login.yaml", encoding="utf-8", mode="w") as f:
        f.truncate()

 文章来源地址https://www.toymoban.com/news/detail-413980.html

 

 

 

 

 

 

到了这里,关于YAML文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用Pydantic将Python对象转换为其他数据格式,例如JSON、XML、YAML

    更多文章:技数未来 Pydantic是一个在Python中的数据验证和解析库。它可以将Python对象转换成其他数据格式,如JSON、XML和YAML。在使用Pydantic之前,我们需要进行一些准备工作: 1. 安装Python和pip:确保你的计算机上安装了Python以及pip包管理器。 2. 创建虚拟环境(可选):建议使

    2024年02月15日
    浏览(64)
  • 【云原生--K8S】 yaml文件部署Mysql数据库(一)

    在Linux系统下部署Mysql数据库,大家都比较熟悉,轻车熟路。但是如何在K8S环境部署Mysql数据库,却是一个全新的课题,涉及到数据的存储与同步,远比想像的复杂,下面我们将花几篇文章来详细探讨一下这个问题。本篇主要介绍如何通过yaml文件部署mysql,如何进入docker容器操

    2023年04月23日
    浏览(85)
  • K8S之使用yaml格式定义pod

    2024年02月09日
    浏览(35)
  • 如何将 Stable Diffusion PT+YAML 转换成 diffusers 格式

    Huggingface 的 diffusers 格式是初学者最爱的格式,只需要简单几行代码,就可以下载模型,执行 文字到图片 转换等常用功能 而有时候在网上淘模型的时候,经常会遇到原版 Stable Diffusion 格式,只有一个 .pt 文件和一个 .yaml 配置文件 ,为了方便管理和加载,可以把原版格式转换

    2024年02月16日
    浏览(40)
  • 利用 yaml-cpp 开源库读写 yaml 配置文件—— yaml-cpp安装配置

    本文介绍的是如何在 C++ 开发中利用 yaml-cpp 开源库读写 yaml 配置文件。 主要参考了网上的大牛们的文章,这里只是做简单记录。 YAML语言的设计目标,就是方便人类读写,实质上是一种通用的数据串行化格式。 1)大小写敏感 2)使用缩进表示层级关系 3)缩进时不允许使用

    2023年04月15日
    浏览(73)
  • 接口测试框架pytest+yaml之yaml文件的相互引用

    在写测试框架的一篇文章中提到过(python接口测试框架选择之pytest+yaml+Allure_亲爱的阿满啊的博客-CSDN博客_pytest yaml),yaml可以用来编写测试数据,yaml文件间的互相引用使测试数据的编写更灵活。比如接口之间会存在一些共性,存在上传的字段相同,这些相同的字段可以写在ya

    2023年04月08日
    浏览(35)
  • python yaml库:safe_load()(安全解析函数,解析yaml)(防止yaml文件中包含恶意代码)

    YAML (YAML Ain’t Markup Language) 是一种人类可读的数据序列化标准。它被广泛用于配置文件、多语言环境、交互式应用等场合。Python 为 YAML 提供了强大的支持,其中包括一个安全的加载函数 safe_load 。 safe_load 是 PyYAML 库中的一个函数,用于安全地解析 YAML 文档。它的主要优点是可

    2024年02月08日
    浏览(32)
  • 利用 yaml-cpp 开源库读写 yaml 配置文件—— 读写部分

    Node 是 yaml-cpp 中的核心概念,是最重要的数据结构,它用于存储解析后的 yaml 信息。 Node一共有以下几种type: 1)Null 空节点 2)Sequence 序列,类似于一个Vector,对应YAML格式中的数组 3)Map 类似标准库中的Map,对应YAML格式中的对象 4)Scalar 标量,对应YAML格式中的常量 生成 N

    2024年02月10日
    浏览(45)
  • Kubernetes yaml文件

    目录 yaml文件 Pod yaml文件详解 deployment.yaml文件详解 Service yaml文件详解 deployment.yaml文件详解 Service yaml文件详解

    2024年02月06日
    浏览(39)
  • Yaml配置文件读取方法

    在日常的代码中,有一些值是配置文件中定义的,这些值可以根据用户的要求进行调整和改变。这往往会写在yaml格式的文件中。这样开放程序给用户时,就可以不必开放对应的源码,只开放yaml格式的配置文件即可。 将配置文件中的值读入程序也非常的简单。 我们先写一个简

    2024年02月11日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包