全自动swagger转换jmx工具

MIT
python
windows,mac,linux
jiawei.li · 2020年07月02日 · 937 次阅读 · 19 条评论

swaggerjmx

Build Status PyPI PyPI - Python Version GitHub top language PyPI - Downloads GitHub stars https://blog.csdn.net/flower_drop

logo

安装

pip install swaggerjmx

仓库地址:

社区地址

适用场景

  1. 由于接口测试脚本编写耗时,而且需要持续维护,耗时耗力,使用此工具可以一键生成接口测试脚本.
  2. swagger-ui 接口文档一键生成 jmx 文件供 jmeter 使用.

功能

  1. 将 swagger-ui 文档转换为 jmx 文件

Demo_1

# -*- coding: utf-8 -*-

from swaggerjmx.convert import conversion
from swaggerjmx.settings import Settings as ST
#  swagger_url
ST.swagger_url = 'http://ip:port/v2/api-docs'
#  report_path
ST.report_path = 'jmx'
# 开始转换
conversion()

Demo_2

  • 需要登录才能访问的,可以复制 swagger_url 页面上的 json 信息,保存 json 文件,使用 Demo_2 方式转换
# -*- coding: utf-8 -*-

from swaggerjmx.convert import conversion
from swaggerjmx.settings import Settings as ST
#  swagger_url_json_path 
ST.swagger_url_json_path = 'test.json'
#  report_path
ST.report_path = 'jmx'
# 开始转换
conversion()

以上便是 swaggerjmx 的基本用法介绍。

如果您有发现错误,或者您对 swaggerjmx 有任何建议,欢迎到 swaggerjmx Issues 发表,非常感谢您的支持。您的反馈和建议非常宝贵,希望您的参与能帮助 swaggerjmx 做得更好。

评论列表
心意已决 发表于 2020年11月25日

1234

jiawei.li 发表于 2020年07月02日

欢迎使用!!!

虎虎虎虎虎 发表于 2020年07月10日

raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

MeterSphere 小助手 发表于 2020年07月14日

MeterSphere 小助手 发表于 2020年07月14日

也可以看下我们的项目,可以导入 postman、swagger 中的接口进行接口测试和性能测试。

huahuablue 发表于 2020年07月15日

raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

jiawei.li 发表于 2020年07月15日

@huahuablue 老哥,你没有 swagger-ui 登陆权限,你用 demo_2 方式,进行转换!https://github.com/Pactortester/swaggerjmx#demo_2

huis 发表于 2020年07月16日

代码没考虑到 swagger-ui url 地址 默认端口 80 的情况

thread_group['host'] = str(host).split(":")[0]
thread_group["port"] = str(host).split(":")[1] //这里会报错

jiawei.li 发表于 2020年07月16日

@sshh123
已修复请更新 v1.0.5 验证
pip install swaggerjmx==1.0.5 -i https://pypi.org/simple

huis 发表于 2020年07月17日

再补充几个问题:

  1. path 路径中的变量没有 $ 符号,没有变量化
  2. method 我这边需要更改为 纯大写 字母才可以生效,比如 get 需要更改为 GET
  3. 变量 query,body,path,header 等没有做区分,都默认为了 body
  4. 注释中目前使用的是 description 字段,我这边是 summary 字段感觉放到注释中比较好

jmeter 版本:5.1

jiawei.li 发表于 2020年07月17日

@sshh123

欢迎提 pull requests ,感谢!!!,期待你的优化!
https://github.com/Pactortester/swaggerjmx.git

jiawei.li 发表于 2020年07月22日

@sshh123

修复:
1.path 路径中的变量没有 $ 符号,没有变量化
2.method 更改为 纯大写 字母才可以生效,比如 get 需要更改为 GET

请更新 最新版 试用 pip install -U swaggerjmx

此生不换 发表于 2020年07月23日

这个好

jwang 发表于 2020年08月04日

老哥,你这个跟我之前写的一个很像啊
https://testerhome.com/topics/21763

jwang 发表于 2020年08月04日

由 jmeter 一键转换 swagger,也可也参考下
https://testerhome.com/topics/21123

jwang 发表于 2020年08月04日

这有个弊端,就是如果 swagger 含有 post 请求时,请求实体为 modles 时,就无法解析到

捉虫子的小强 发表于 2021年01月09日

这个能否把 mock 测试数据加到 swagger 文档中,然后生成带测试数据的 jmx,你这如何做到数据参数化,可以考虑下?

jiminwu 发表于 2021年02月20日

TypeError: unsupported operand type(s) for +: 'NoneType' and 'str' 这个怎么解决