【pytest】YAML管理测试数据
2022/8/6 23:22:58
本文主要是介绍【pytest】YAML管理测试数据,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
-
前言:
- 代码的可维护性除了代码冗余之外还有就是数据尽量不要和代码掺杂在一起,因为阅读起来会非常的凌乱;数据分离能更好的增加代码可读性和可维护性,也能更好的二次修改使用。
- 上一篇小编与大家分享了pytest参数化,文章中,数据与代码放在一个py文件中,如果要修改数据就比较麻烦了,本篇我们将使用YAML文件来管理数据。
-
yaml基本语法规则
- 大小写敏感
- 使用缩进表示层级关系
- 缩进时不允许使用Tab键,只允许使用空格。
- 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
- #表示注释,从这个字符一直到行尾,都会被解析器忽略,这个和python的注释一样
#yaml中序列(list) - admin - admin2 - admin3 #yaml中键值对(字典) #1、直接使用花括号 {"message": "update some data!", "code": 0} #2、键值对 user: admin pwd: 123456
- 操作步骤
- 1、环境安装
- pip install PyYAML== 3.12
- 2、新建yaml文件,保存数据
- 1、环境安装
# data\userinfo.yaml - - "M" - "message": "update some data!", "code": 0 - - "F" - "message": "update some data!", "code": 0
- 3、封装函数,读取yaml文件
#common\read_yaml.py import yaml import os def readyml(yaml_path): #判断yaml文件是否存在 if not os.path.isfile(yaml_path): raise FileNotFoundError('文件路径不存在,请检查路径是否正确:%s'%yaml_path) #读取文件 with open(yaml_path,encoding='utf8') as f: yaml_data = f.read() data = yaml.safe_load(yaml_data) #转换成列表、字典对象 return data
- 4、用例中使用
#case\test_param.py import pytest import os from common.read_yaml import readyml #获取文件绝对路径 cur_path = os.path.dirname(os.path.dirname(os.path.realpath(__file__))) yaml_path = os.path.join(cur_path,'data','userinfo.yaml') print(yaml_path) test_data = readyml(yaml_path) @pytest.mark.parametrize("test_input,expect", test_data) def test_001(test_input,expect): print(test_input,expect['message'])
这篇关于【pytest】YAML管理测试数据的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-15JavaMailSender是什么,怎么使用?-icode9专业技术文章分享
- 2024-11-15JWT 用户校验学习:从入门到实践
- 2024-11-15Nest学习:新手入门全面指南
- 2024-11-15RestfulAPI学习:新手入门指南
- 2024-11-15Server Component学习:入门教程与实践指南
- 2024-11-15动态路由入门:新手必读指南
- 2024-11-15JWT 用户校验入门:轻松掌握JWT认证基础
- 2024-11-15Nest后端开发入门指南
- 2024-11-15Nest后端开发入门教程
- 2024-11-15RestfulAPI入门:新手快速上手指南