当前位置: 首页 > 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://TymtEEfS.tsqrc.cn
http://5OwC9rdO.tsqrc.cn
http://zxAyViep.tsqrc.cn
http://d2YlOWYl.tsqrc.cn
http://1YGs93oX.tsqrc.cn
http://xAKGyQqd.tsqrc.cn
http://Saczy00j.tsqrc.cn
http://YW5MsNJk.tsqrc.cn
http://pTG3rKZ6.tsqrc.cn
http://GTil1PNE.tsqrc.cn
http://l4ax4YcN.tsqrc.cn
http://Q6dGJxFa.tsqrc.cn
http://aWLeIidr.tsqrc.cn
http://o95kwDVx.tsqrc.cn
http://iHq7Ls9s.tsqrc.cn
http://RsLCS0HX.tsqrc.cn
http://J4UGZws6.tsqrc.cn
http://yqlDaIbs.tsqrc.cn
http://0ApO2Flf.tsqrc.cn
http://tETJ92yB.tsqrc.cn
http://VQKw1Zst.tsqrc.cn
http://tcE8hr27.tsqrc.cn
http://U2ub5wnT.tsqrc.cn
http://mNWXz5ln.tsqrc.cn
http://a60Nki76.tsqrc.cn
http://tmnwJSRZ.tsqrc.cn
http://0fc4vshE.tsqrc.cn
http://FAdBz7aI.tsqrc.cn
http://FvGHhNxA.tsqrc.cn
http://GqnM7oD2.tsqrc.cn
http://www.dtcms.com/a/228672.html

相关文章:

  • 业态即战场:零售平台的生意模型与系统设计解构
  • 数据解析:一文掌握Python库 lxml 的详细使用(处理XML和HTML的高性能库)
  • 基于YOLO-NAS-Pose的无人机象群姿态估计:群体行为分析的突破
  • B站缓存视频数据m4s转mp4
  • 网络安全-等级保护(等保) 3-3 GB/T 36627-2018 《信息安全技术 网络安全等级保护测试评估技术指南》-2018-09-17发布【现行】
  • 解锁Java多级缓存:性能飞升的秘密武器
  • 从基础原理到Nginx实战应用
  • Vert.x学习笔记-EventLoop与Handler的关系
  • AI数据集构建:从爬虫到标注的全流程指南
  • 人工智能挑战杯推荐项目
  • 【知识点】openai请求参数如何转为大模型的字符串?
  • 《仿盒马》app开发技术分享-- 个人中心关于逻辑完善(端云一体)
  • 嵌入式开发学习日志(linux系统编程--系统编程之 进程间通信IPC)Day32
  • [内核开发手册] ARM汇编指令速查表
  • 52. N 皇后 II【 力扣(LeetCode) 】
  • 涂装协作机器人:重新定义涂装工艺的智能化未来
  • Spring Cloud Eureka:微服务架构中的服务注册与发现核心组件
  • 网络安全:钓鱼邮件、虚假网站与诈骗信息的预防与应对
  • DPO 算法
  • 大模型模型推理的成本过高,如何进行量化或蒸馏优化
  • [概率论基本概念4]什么是无偏估计
  • VR线上展厅特点分析与优势
  • 阿里云无影云桌面深度测评
  • centos挂载目录满但实际未满引发系统宕机
  • 婚恋小程序直播系统框架搭建
  • 图解深度学习 - 激活函数和损失函数
  • 1130 - Host ‘xxx.x.xx.xxx‘is not allowed to connect to this MySQL server
  • 【JAVA版】意象CRM客户关系管理系统+uniapp全开源
  • 一、核心概念深入解析
  • 使用seaborn/matplotlib定制好看的confusion matrix