1、先创建一个data.yaml的文件
2、yaml的四种写法,注意空格
# yaml写法,对象写法
hero:
name: 安琪拉
word: 火焰是我最喜欢的颜色
Hp: 445.5
# yaml写法,数组写法
heros_name:
- 安琪拉
- 黄忠
- 小乔
# yaml写法,数组写法
heros:
- name: 黄忠
word: 周日被我射熄火了
Hp: 440
# yaml写法,数组嵌套写法
heros_name_list:
- - 安琪拉
- 黄忠
- 小乔YAML第三方包安装YAML第三方包安装
3、yaml第三方包安装 YAML第三方包安装
4、新建一个文件夹utils,用来存放read_data.py数据
print(data["heros_name"]) 获取的key值
5、传值
1、用例test_parametrize_yaml.py 去获取data.yaml中的数据,通过数据驱动的方式(read_data.py),使用yaml.safe_load()函数去读取data.yaml中的业务数据,在test_parametrize_yaml.py调用read_data.py文件中的get_data()函数去获取值,具体代码如下
1)data.yaml中的代码
# yaml写法,数组写法 heros_name: - 安琪拉 - 黄忠 - 小乔
2)read_data.py中的代码
import os import yaml path = os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), "config", "data.yaml") # def read_data(): # f = open("../config/data.yaml", encoding="utf8") # data = yaml.safe_load(f) # return data def read_data(): f = open(path, encoding="utf8") data = yaml.safe_load(f) return data get_data = read_data() print(get_data["heros_name"])
yaml.safe_load
作用
yaml.safe_load
的主要作用是读取YAML文件并将其内容解析为Python的数据结构(如字典、列表等)。这使得Python程序能够方便地读取和处理YAML文件中的配置信息或测试数据。
yaml.safe_load
用法
使用yaml.safe_load
函数,你需要首先导入yaml
模块,然后调用该函数并传入要解析的YAML文件内容。通常,你会使用open
函数读取文件内容,然后将其传递给yaml.safe_load
。
3)test_parametrize_yaml.py代码
import pytest from utils.read_data import get_data @pytest.mark.parametrize("name", get_data["heros_name"]) def test_parametrize_02(name): print(name) if __name__ == '__main__': pytest.main()
5、获取相对路径的想法,不能使用绝对路径,绝对路径弊端太大,比如换了电话获取不到
import os print(os.path.realpath(__file__)) print(os.path.dirname(os.path.realpath(__file__))) print(os.path.dirname(os.path.dirname(os.path.realpath(__file__)))) print(os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), "config", "data.yaml"))
多参数传值