当前位置: 首页 > news >正文

接口自动化测试之 pytest 接口关联框架封装

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快

一般情况下,我们是通过一个yaml文件进行关联实现

在根目录下新建一个文件yaml,通过上述conftest.py文件实现全局变量的更新:

1.首先需要建立一个读取、写入、清除yaml文件的工具类

如下:

import osimport yamlclass YamlUnit:def readAllYaml(self):with open(os.getcwd() + "/extract.yml", mode='r', encoding='utf-8') as f:value = yaml.load(stream=f, Loader=yaml.FullLoader)return valuedef readKeyYaml(self,key):with open(os.getcwd() + "/extract.yml", mode='r', encoding='utf-8') as f:value = yaml.load(stream=f, Loader=yaml.FullLoader)return value[key]def writeYaml(self, data):with open(os.getcwd() + "/extract.yml", mode='w', encoding='utf-8') as f:print(os.getcwd() + "/extract.yml")value = yaml.dump(data=data, stream=f, allow_unicode=True)def deleteYaml(self):with open(os.getcwd()+"/extract.yml",mode="w",encoding='utf-8') as f:f.truncate()

2.配合conftest.py文件+ fixture实现全局共享调用

# 实现部分前置
import pytestfrom comment.yaml_unit import YamlUnit@pytest.fixture(scope="function")
def conn_getbase():print("连接数据库成功")yieldprint("关闭数据库成功")@pytest.fixture(scope="session", autouse=True)
def clear_yaml():YamlUnit().deleteYaml()@pytest.fixture(scope="session", autouse=True)
def get_token():token = '';  # 获取token的代码请求return token

3.调用时只需传入方法函数名称即可

如:下面函数使用之前需要连接数据库,只需传入conftest.py文件里面的conn_getbase函数名即可

   def test_Login(self,conn_getbase):# post请求url = "xxxxxxx"# 参数data = {"captcha": "Gkak!@#2019","checkKey": 1637811815838,"password": "123456","remember_me": 1,"username": "admin"}rep = requests.request('post', url, json=data)statues = rep.json()["success"]message = rep.json()["message"]if statues:print(message )else:raise Exception(message)

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

http://www.lryc.cn/news/574792.html

相关文章:

  • Unity_导航操作(鼠标控制人物移动)_运动动画
  • matplotilb实现对MACD的实战
  • SQL关键字三分钟入门:UPDATE —— 修改数据
  • Camera Sensor接口协议全解析(五)SLVS-EC接口深度解析
  • Stable Diffusion 项目实战落地:打造完美海报的秘密武器 第二篇:边缘柔化、蒙版处理与图生图技术大揭秘!
  • 如何通过nvm切换本地node环境详情教程(已装过node.js更改成nvm)
  • 2025.6.24总结
  • useState为异步,测试一下编码时候是否考虑?
  • Unity反射机制
  • mongoose解析http字段值
  • Spring Boot 的Banner的介绍和设置
  • 中科米堆3D扫描逆向建模方案:汽车轮毂三维扫描抄数建模
  • elk+filebeat收集springboot项目日志
  • iwebsec靶场-文件上传漏洞
  • 串口助手实例
  • lib61850 代码结构与系统架构深度分析
  • 鸿蒙OH南向开发 轻量系统内核(LiteOS-M)【异常调测】
  • 针对基于深度学习的侧信道分析(DLSCA)进行超参数的贝叶斯优化
  • vue 3 计算器
  • Nginx性能优化配置指南
  • 6.24_JAVA_微服务_Elasticsearch搜索
  • vscode + Jlink 一键调试stm32 单片机程序(windows系统版)
  • Git简介和常用命令
  • Windows安装Emscripten‌/emsdk(成功)
  • Python 数据分析与可视化 Day 6 - 可视化整合报告实战
  • Javaweb - 5 事件的绑定
  • 技术伦理之争:OpenAI陷抄袭风波,法院强制下架宣传视频
  • 自然语言处理入门
  • day041-web集群架构搭建
  • 软件设计模式选择、判断解析-1