前言
当项目中有很多个接口的时候,一个个去转成 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.目前只实现基础功能,需写上面代码调用此功能,暂不支持命令行操作
2.目前仅仅是抓取接口和请求参数,自动生成用例结构
3.参数部分拿文档的默认值,还需自己去调试,写对应的测试数据
4.后续想法是根据参数的范围,按等价类,边界值去生成对应的用例
5.断言部分功能未实现,目前仅断言状态码为200