接口自动化--接口关联封装

前言

  • 当项目复杂度到一定程度时,其中接口关联的程度一定会比较错综复杂,这种情况下可能出现一个场景,文件中会有特别多的中间变量,时间一久可能我们自己都搞不清楚, 所以我们需要将这些中间变量进行一个统一管理
    1. 中间变量统一管理
    1. 查看中间变量的值

解决方案

  1. 在项目根路径中新建yaml文件extract.yaml
  2. 在common文件夹中新建yaml_util.py用来操作yaml文件
  3. yaml_util.py中 的内容为三个方向: 读, 写, 清空
    代码如下

import os
import yaml

# 读
def read_yaml(key):
    with open(os.getcwd() + "/extract.yaml", encoding="utf-8") as f:
        value = yaml.load(stream=f, Loader=yaml.FullLoader)
        return value[key]  # 利用key来取值


# 写
def write_yaml(data):
    with open(os.getcwd() + "/extract.yaml", encoding="utf-8", mode="a") as f:
        # 写入
        yaml.dump(data, stream=f, allow_unicode=True)

# 清空
def clear_yaml():
    with open(os.getcwd() + "/extract.yaml", encoding="utf-8", mode="w") as f:
        # 类似与mysql数据库中的清空数据 truncate()
        f.truncate()
  • 此时我们在项目代码中就可以利用yaml文件中读取写入的方式进行统一了
    在这里插入图片描述
  • 但是问题又来了,由于我们的写入方法中传入的参数时“a”表示追加,所以每次运行时yaml文件中的数据都会重复且增加,如果改为“w”,那么yaml中的文件又只有一个数据,所以此时就需要pytest中的fixture出场配合我们在yaml_util.py中的clear_yaml方法解决这个问题
  • conftest.py文件中, 写入一下内容
import pytest
from common.yaml_util import clear_yaml

@pytest.fixture(scope="function", autouse=True)
def yaml_clear():
    clear_yaml()  # 在用例执行之前清除
    # yield
    # clear_yaml()  # 在用例执行之后清除
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值