目录:导读
- 前言
- 一、Python编程入门到精通
- 二、接口自动化项目实战
- 三、Web自动化项目实战
- 四、App自动化项目实战
- 五、一线大厂简历
- 六、测试开发DevOps体系
- 七、常用自动化测试工具
- 八、JMeter性能测试
- 九、总结(尾部小惊喜)
前言
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: true
isTeacher: 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: 18
status: null
isStudent: true
fruits:- apple- banana- orange
teacher: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: gotoparams:url: 'https://www.baidu.com'
# 输入python
- action: sendkeysparams:locator: ['id','kw']value: 'python'
# 点击搜索按钮
- action: clickparams:locator: ['id','su']
# 断言
- action: assert_text_containsparams:locator: ['id','content_left']excepted: 'python'
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,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 time
import yaml
from selenium import webdriver
from 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()
下面是我整理的2023年最全的软件测试工程师学习知识架构体系图 |
一、Python编程入门到精通
二、接口自动化项目实战
三、Web自动化项目实战
四、App自动化项目实战
五、一线大厂简历
六、测试开发DevOps体系
七、常用自动化测试工具
八、JMeter性能测试
九、总结(尾部小惊喜)
不论前路多么崎岖,只要心怀信念和勇气,坚持不懈地追逐梦想,我们定能翻过困难,抵达成功的彼岸,创造出属于自己的辉煌人生。
每个人内心深处都有一个梦想,只有不断奋斗拼搏,才能实现它。坚定信念,勇往直前,让我们迎接挑战,创造辉煌人生!
在人生的道路上,勇敢面对挑战,坚持不懈努力奋斗,只有这样,才能超越自我,实现梦想,创造属于自己的辉煌。