数据驱动-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}')

 

posted @ 2021-06-14 22:52  H.「俠」  阅读(131)  评论(0)    收藏  举报