pytest + yaml 框架 -19.根据 swagger.json 自动生成 yaml 格式自动化用例
前言
当项目中有很多个接口的时候,一个个去转成 yaml 文件的用例会很浪费时间,现在大部分格式的接口都有swagger.json 接口文档。
那么我们可以从swagger.json 中解析出接口,自动生成 yaml 格式的用例,就可以大大减少工作量。
此功能在 v1.1.5 版本上实现
环境要求
Python 大于等于3.8版本,(低于python3.8版本不支持)
Pytest 7.2.0 最新版
pip 安装插件, 最新版本v1.1.5
pip install pytest-yaml-yoyo
使用示例
目前支持2中方式生成 yaml 用例。
1.如果有本地的 swagger.json 文件,可以放到项目根目录,自己写 a.py 文件
目录结构如下
a.py 文件调用插件中的接口即可
from pytest_yaml_yoyo.swagger_parser import SwaggerToYaml
# 作者 上海-悠悠 微信:283340479
s = SwaggerToYaml('./swagger.json')
s.parse_json()
- 如果 有在线的swagger.json 地址,也可以支持在线接口调用
a.py 文件调用插件中的接口即可
from pytest_yaml_yoyo.swagger_parser import SwaggerToYaml
# 作者 上海-悠悠 微信:283340479
s = SwaggerToYaml('http://127.0.0.1:8000/swagger.json')
s.parse_json()
yaml 用例自动生成
执行完成后会在当前项目目录按接口模块生成对应的yaml格式用例
yaml 文件格式示例
生成的用例没有base_url ,只有接口的相对地址,那么可以在当前目录下创建pytest.ini 文件
[pytest]
base_url = http://httpbin.org
相关 功能参考全局base_url 的设置文档https://www.cnblogs.com/yoyoketang/p/16970491.html
备注说明:
1.并不是所有的swagger.json格式都支持,目前我是按flask项目生成的swagger.json 格式来解析的,其它的未知,思路供学习和参考。
2.目前只实现基础功能,需写上面代码调用此功能,暂不支持命令行操作
3.目前仅仅是抓取接口和请求参数,自动生成用例结构
4.参数部分拿文档的默认值,还需自己去调试,写对应的测试数据
5.后续想法是根据参数的范围,按等价类,边界值去生成对应的用例
6.断言部分功能未实现,目前仅断言状态码为200
网易云完整视频课程https://study.163.com/course/courseMain.htm?courseId=1213419817&share=2&shareId=480000002230338
报名咨询wx:283340479 (已报名的同学学习过程中有问题,都可以协助解决)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具