绵阳网站建设企业,西安SEO网站推广,网站建设费交文化事业,哪个网站可以做行测题目什么是YAML
YAML#xff08;YAML Ain’t Markup Language#xff09;是一种人类可读的数据序列化语言。它的设计目标是使数据在不同编程语言之间交换和共享变得简单。YAML采用了一种简洁、直观的语法#xff0c;以易于阅读和编写的方式表示数据结构。
YAML广泛应用于配置文…
什么是YAML
YAMLYAML Ain’t Markup Language是一种人类可读的数据序列化语言。它的设计目标是使数据在不同编程语言之间交换和共享变得简单。YAML采用了一种简洁、直观的语法以易于阅读和编写的方式表示数据结构。
YAML广泛应用于配置文件、数据序列化、API设计和许多其他领域。它被许多编程语言和框架所支持包括Python、Java、Ruby等。在Python中可以使用PyYAML库来读取和写入YAML文件。
YAML的优点包括易读性高、易于理解、与多种编程语言兼容以及支持丰富的数据结构。它的简洁语法使得配置文件变得更加直观和可维护。无论是作为配置文件格式还是数据交换格式YAML都是一个强大而受欢迎的选择。
YAML语法规范
YAML的语法特点包括
使用缩进表示层级关系不使用大括号或者其他符号。
使用冒号来表示键值对。
支持列表和嵌套结构。
使用注释以 “#” 开头。
支持引用和锚点可以在文档中引用其他部分的数据。
YAMLYAML Ain’t Markup Language支持多种数据类型包括字符串、数字、布尔值、列表、字典和空值。下面是每种数据类型的示例代码和相应的语法规范
字符串 语法规范使用单引号或双引号将字符串括起来。字符串的引号也可以省略
name: John
addr: 长沙数字
语法规范直接写入数字即可。
age: 30布尔值
语法规范使用true表示真使用false表示假。
isStudent: true
isTeacher: false列表
语法规范使用短横线-表示列表项列表项之间使用换行进行分隔。
fruits:- apple- banana- orange字典
语法规范使用冒号:表示键值对键值对之间使用空格进行分隔。
person:name: Johnage: 30空值
语法规范使用null表示空值。
status: null这些是YAML支持的常见数据类型和相应的示例代码。您可以根据需要使用这些数据类型来构建复杂的数据结构。
注意 :
YAML对于缩进非常敏感使用空格进行缩进来表示层级关系。
缩进的空格数目可以是2个或4个但在整个文档中必须保持一致。
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: 18
status: null
isStudent: true
fruits:- apple- banana- orange
teacher:name: Alexage: 30第二步使用python读取yaml中的数据
import yaml
with open(filed.yaml, moder,encodingutf-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 yaml
data {Person: {name: John,age: 30,address: {street: 123 Main St,city: Anytown,state: CA}}
}
# 将data变量存储的数据写入YAML文件
with open(fileexample.yaml, modew) as f:yaml.dump(data, f)yaml.dump()方法:将数据写入到yaml文件中。yaml.dump()方法的第一个参数是写入数据第二个参数是文件对象。
第二步查看example.yaml中的显示 YAML结合UI自动化实现KDT
KDTKeyword-Driven Testing关键字驱动测试的英文简称。
1.yaml数据准备 2.basepage方法封装
from selenium.webdriver import Chrome,ActionChainsclass BasePage:def __init__(self,driver:Chrome):self.driver driverdef 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,locatorNone):发送文本操作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.text3.测试用例编写—实现关键字驱动测试
import time
import yaml
from selenium import webdriver
from basepage import BasePage# 1、读取yaml文件中的数据
with open(filetest_keyword.yaml,moder,encodingutf-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()最后感谢每一个认真阅读我文章的人礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走 这些资料对于【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴上万个测试工程师们走过最艰难的路程希望也能帮助到你