yaml文件语法

ads

*公众号推送规则更新*


*点亮星标不错过任何资讯*

1#

什么是YAML


YAML(YAML Ain't Markup Language)是一种人类可读的数据序列化语言。它的设计目标是使数据在不同编程语言之间交换和共享变得简单。YAML采用了一种简洁、直观的语法,以易于阅读和编写的方式表示数据结构。


YAML广泛应用于配置文件、数据序列化、API设计和许多其他领域。它被许多编程语言和框架所支持,包括Python、Java、Ruby等。在Python中,可以使用PyYAML库来读取和写入YAML文件。


YAML的优点包括易读性高、易于理解、与多种编程语言兼容以及支持丰富的数据结构。它的简洁语法使得配置文件变得更加直观和可维护。无论是作为配置文件格式还是数据交换格式,YAML都是一个强大而受欢迎的选择。


前言


2#

YAML语法规范


YAML的语法特点包括:


使用缩进表示层级关系,不使用大括号或者其他符号。


使用冒号来表示键值对。


支持列表和嵌套结构。


使用注释以 "#" 开头。


支持引用和锚点,可以在文档中引用其他部分的数据。


YAML(YAML Ain't Markup Language)支持多种数据类型,包括字符串、数字、布尔值、列表、字典和空值。下面是每种数据类型的示例代码和相应的语法规范:


1. 字符串

语法规范:使用单引号或双引号将字符串括起来。字符串的引号也可以省略


name: "John"addr: "长沙"

2. 数字


语法规范:直接写入数字即可。


age: 30

3.布尔值


语法规范:使用true表示真,使用false表示假。


isStudent: trueisTeacher: false

4.列表


语法规范:使用短横线(-)表示列表项,列表项之间使用换行进行分隔。


fruits:    - apple    - banana    - orange

5.字典


语法规范:使用冒号(:)表示键值对,键值对之间使用空格进行分隔。


person:    name: "John"    age: 30

6. 空值


语法规范:使用null表示空值。


status: null

这些是YAML支持的常见数据类型和相应的示例代码。您可以根据需要使用这些数据类型来构建复杂的数据结构。


注意 :


YAML对于缩进非常敏感,使用空格进行缩进来表示层级关系。


缩进的空格数目可以是2个或4个,但在整个文档中必须保持一致。


3#

python操作YAML


Python提供了pyyaml库来操作YAML文件,操作yaml文件之前,先安装好pyyaml库。


在终端(Pycharm-Terminal)或命令提示符(cmd)中运行以下命令来安装pyyaml库:pip install pyyaml


1.python读取yaml文件


第一步:提前准备好的yaml文件,yaml文件后缀为.yaml或者.yml


name: "John"addr: "长沙"age: 18status: nullisStudent: truefruits:    - apple    - banana    - orangeteacher:    name: "Alex"    age: 30

第二步:使用python读取yaml中的数据


import yamlwith open(file="d.yaml", mode="r",encoding='utf-8') as f:    res = yaml.safe_load(f)print(res)

·yaml.safe_load()方法:读取YAML文件中的数据。yaml.safe_load()方法参数是文件对象


·运行结果:会自动将yaml中的数据转为python所支持的数据类型



2.python将数据写入yaml文件


第一步:将python指定的变量值写入yaml文件中


import yamldata = {    "Person": {        "name": "John",        "age": 30,        "address": {            "street": "123 Main St",            "city": "Anytown",            "state": "CA"        }    }}# 将data变量存储的数据写入YAML文件with open(file="example.yaml", mode="w") as f:    yaml.dump(data, f)

·yaml.dump()方法:将数据写入到yaml文件中。yaml.dump()方法的第一个参数是写入数据,第二个参数是文件对象。


·第二步:查看example.yaml中的显示



4#

YAML结合UI自动化实现KDT


KDT(Keyword-Driven Testing):关键字驱动测试的英文简称。


1.yaml数据准备


# 访问页面- action: goto  params:url: 'https://www.baidu.com'# 输入python- action: sendkeys  params:    locator: ['id','kw']    value: 'python'# 点击搜索按钮- action: click  params:    locator: ['id','su']# 断言- action: assert_text_contains  params:    locator: ['id','content_left']    excepted: 'python'

2.basepage方法封装


from selenium.webdriver import Chrome,ActionChains

class BasePage: def __init__(self,driver:Chrome): self.driver = driver

def goto(self,url): '''打开网址''' self.driver.get(url)

def click(self,locator): '''点击操作''' el = self.driver.find_element(*locator) try: el.click() except: ActionChains(self.driver).click(el).perform()

def sendkeys(self,value,locator=None): '''发送文本操作''' if locator: # 相当于ActionChains中的send_keys_to_element(ele,value),先做点击,再做文本输入 el = self.driver.find_element(*locator) el.send_keys(value) else: ActionChains(self.driver).send_keys(value).perform()

def assert_text_contains(self,locator,excepted): '''断言文本是否包含指定的内容''' el = self.driver.find_element(*locator) assert excepted in el.text

3.测试用例编写---实现关键字驱动测试


import timeimport yamlfrom selenium import webdriverfrom basepage import BasePage

# 1、读取yaml文件中的数据with open(file='test_keyword.yaml',mode='r',encoding='utf-8') as f: data = yaml.safe_load(f)

# 2、测试用例编写def test_01(): # 初始化浏览器操作 driver = webdriver.Chrome() driver.implicitly_wait(10) driver.maximize_window() # 实例化BasePage的对象 basepage = BasePage(driver) # 遍历读取到的data数据 for step in data: # 获取动作名称 method_name = step['action'] # 获取参数 params = step['params'] # 获取类中方法名 method = getattr(basepage, method_name) # 调用方法,输入参数 method(**params) # 字典解包 time.sleep(2) driver.quit()



 lemon ban 

【免费领】



每|日|福|利


俗话说得好


他山之石,可以攻玉


0基础轻松入行软测!



扫描二维码,回复“0713


即可免费领取~



关注我们,领取更多免费资料




最后编辑于:2024/1/9 拔丝英语网

admin-avatar

英语作文代写、国外视频下载

高质量学习资料分享

admin@buzzrecipe.com