首页 > 其他分享 >pytest + yaml 框架 -19.根据 swagger.json 自动生成 yaml 格式自动化用例

pytest + yaml 框架 -19.根据 swagger.json 自动生成 yaml 格式自动化用例

时间:2023-02-15 22:33:50浏览次数:48  
标签:用例 19 接口 yaml json pytest swagger

前言

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

标签:用例,19,接口,yaml,json,pytest,swagger
From: https://www.cnblogs.com/yoyoketang/p/17125002.html

相关文章

  • CF819D Mister B and Astronomers 题解
    CF819DMisterBandAstronomersSolution目录CF819DMisterBandAstronomersSolution更好的阅读体验戳此进入题面SolutionCodeUPD更好的阅读体验戳此进入题面存在......
  • APS.NET Core 6.0Json任何类型读取到字符串属性The JSON value could not be converte
    在升级.netsdk到6.0版本后出现TheJSONvaluecouldnotbeconvertedtoSystem.String.原因是我代码定义的类型是string,但是传参的时候写了int,publicoverridevoidC......
  • 如何使用php构造JAVA的包含数组元素的JSON对象
    提问: 最近做开发,接口是JAVA,这边使用PHP对接,接口要求一个字段是JSON对象,JSON对象中的字段是数组,格式如下:"result":{"JSON":{"ARRAY":[]......
  • 无法加载源 https://api.nuget.org/v3/index.json 的服务索引
    .net6之后,不会随项目生成packages文件夹,将项目拷贝到无联网的电脑上用VS打开时,会出现nuget还原失败的情况,只需要把原电脑中的用户文件夹下的.nuget文件夹拷贝过去,放到对应......
  • yaml的读与写
    yaml文件的读写是真的快,也很简单。代码如下:fromruamel.yamlimportYAMLimportos#读取yaml配置文件defread_yaml(yaml_path):yaml=YAML(typ='unsafe')try:......
  • @JsonInclude注解
    @JsonInclude注解是jackSon中最常用的注解之一,是为实体类在接口序列化返回值时增加规则的注解例如,一个接口需要过滤掉返回值为null的字段,即值为null的字段不返回,可以在实......
  • oracle 19c 创建物化视图并测试logminer进行日志挖掘
    1.创建物化视图altersessionsetcontainer=pdb;grantcreatematerializedviewtoscott;creatematerializedview物化视图名         --1.创......
  • Go 工程化 - JSON 使用技巧
    概述在 Go快速入门指南-JSON 讲解了 JSON 的常用方法,但是除此之外,JSON 还有一些鲜为人知的使用技巧,可以简洁地组合和忽略结构体字段,避免了重新定义结构体和内嵌......
  • json.dumps()
    json.dumps():将python对象编码成Json字符串importjson#将字典类型数据转换成json字符串data={'name':'winnie','age':20,}json_str=json.dumps(data)pr......
  • kubernetes 使用jq命令对资源配置查看(yaml json文件解析工具)
    有图形化的直接从图形化可以看到各种资源,如Deployment、Pod等资源的配置安装1.jq命令centos环境下安装#yum-yinstalljq2.https://github.com/stedolan/jq下载 ......