打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
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()
  1. 如果 有在线的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

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
Python 如何使用 HttpRunner 做接口自动化测试
Python Requests Pytest YAML Allure实现接口自动化
接口自动化框架对比 | 质量工程
pytestx重新定义接口框架设计
python+pytest接口自动化之token关联登录的实现
接口管理测试繁琐复杂?何不试试Eolink
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服