数据驱动-yaml文件读取

Posted H.「俠」

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据驱动-yaml文件读取相关的知识,希望对你有一定的参考价值。

 

 

 

数据驱动

YAML文件

  • 类型Ⅰ

# 最外层定义了两个列表,yaml文件在被读取的时候,user和msg会被遍历,输出两个字典
-
user:
   username: admin
   password: \'123456\'
msg: success
-
user:
   username: admin
   password: \'123456\'
msg: 用户名或密码输入错误
   
# 执行用例后
PASSED                                       [ 50%]

获取的yaml文件: {\'user\': {\'username\': \'admin\', \'password\': \'123456\'}, \'msg\': \'success\'}
PASSED                                       [100%]

获取的yaml文件: {\'user\': {\'username\': \'admin\', \'password\': \'123456\'}, \'msg\': \'用户名或密码输入错误\'}
@pytest.mark.parametrize(\'users\', load(\'../Bili/user.yml\'))
用该装饰器参数化时,users为变量,通过解析方法读取出来的列表有两个元素(字典),这两个元素作为用例数据驱动用例执行
  • 类型Ⅱ


-
 - user:
     username: admin
     password: \'123456\'
 - msg: success
-
 - user:

     username: admin1
     password: \'123456\'
 - msg: 用户名或密码输入错误!
# 执行用例后
PASSED                                       [ 50%]

获取的yaml文件: [{\'user\': {\'username\': \'admin\', \'password\': \'123456\'}}, {\'msg\': \'success\'}]
PASSED                                       [100%]

获取的yaml文件: [{\'user\': {\'username\': \'admin1\', \'password\': \'123456\'}}, {\'msg\': \'用户名或密码输入错误!\'}]
@pytest.mark.parametrize(\'users\', load(\'../Bili/user.yml\'))
用该装饰器参数化时,users为变量,通过解析方法读取出来的列表有两个元素(列表),这两个元素作为用例数据驱动用例执行

封装解析yaml文件的方法

# 此处为什么不封装为class? 答:不想实例化一个对象,说白点就是懒
import yaml
def load(path):
   file = open(path, "r", encoding=\'utf-8\') # path为yaml文件的路径
   data = yaml.load(file, Loader=yaml.fullLoader)
   return data

用例层

# @Time  : 2021/06/14 17:31
# @Author   : H.侠
# -*-coding=utf-8-*-
# =============================================================
import pytest
from Bili.load_yaml import load


@pytest.mark.parametrize(\'users\', load(\'../Bili/user.yml\'))
def test01(users):
   print(f\'\\n\\n获取的yaml文件: {users}\')

 

以上是关于数据驱动-yaml文件读取的主要内容,如果未能解决你的问题,请参考以下文章

python+requests读取yaml文件知识点

pytest测试框架-数据驱动 yaml/excel/csv/json

如何基于YAML设计接口自动化测试框架?看完秒会

pytest数据驱动的缺点

九读取文件数据

从yaml文件读取配置,然后修改配置,怎样更新到yaml文件