四、Python接口自动化-yaml(数据驱动)

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"))

多参数传值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值