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

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

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

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

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

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

如下:

import os import yaml class 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 value def 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 pytest from comment.yaml_unit import YamlUnit @pytest.fixture(scope="function") def conn_getbase(): print("连接数据库成功") yield print("关闭数据库成功") @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.jsqmd.com/news/210859/

相关文章:

  • Belkin发布全新屏幕保护产品系列并推出“日常磨损更换计划”,全面提升设备日常防护水平
  • 基于单片机的太阳能驱动的智能百叶窗(有完整资料)
  • 《P3200 [HNOI2009] 有趣的数列》
  • 接口自动化测试知识总结
  • 《CF1278F Cards》
  • 三分钟带你看懂AI大模型(图文教程)
  • 积木报表重磅更新:移动报表功能全面支持,跨设备无缝对接
  • 普源数字万用表示值不准/开机异常的7种解决方法
  • 自动化测试基础知识总结
  • 区块链 Web3 项目开发
  • AbMole丨VcMMAE:从CD20到HER2,赋能多靶点ADC开发的通用平台
  • Launch Template 和 ALB、Target Group、Auto Scaling Group 是什么关系?
  • 软件测试之bug分析定位技巧
  • 普源数字万用表DM3068与是德科技34461A对比分析
  • 计算机网络入门必知:从信号到速率,一张图讲清通信基础!
  • 一文带你了解最吃香的金融类软件测试(附面试文档)
  • 解读|生产级RAG系统落地的10个经验教训
  • Amazon CloudWatch 的系统化汇总版
  • 2026最新软件测试面试热点问题(含答案+文档)
  • 熬走 3 任领导,从运维转行网安:原来不是我没本事,是赛道选错了
  • 基于单片机控制的汽车电动车窗 系统的设计
  • ‌高效性能测试场景设计指南
  • 网络安全渗透面试 10 题(含标准答案):从零基础到精通,一篇收藏全搞定!
  • 全球网安大神齐聚!第九届 XCTF 总决赛激战启幕,首日解题赛你追我赶燃到炸
  • 基于STM32的心率检测仪设计与实现
  • 是德科技 E4990A 阻抗分析仪:精准测量,赋能多领域应用
  • 导师严选8个AI论文工具,专科生轻松搞定毕业论文!
  • PyFlink 向量化 UDF(Vectorized UDF)Arrow 批传输原理、pandas 标量/聚合函数、配置与内存陷阱、五种写法一网打尽
  • TCL华星APEX臻图:一个新品牌的诞生与源头探析
  • 渗透测试从入门到精通:小白蜕变白帽黑客的终极学习路线