全自动swagger转换jmx工具

MIT
python
windows,mac,linux
jiawei.li · July 02, 2020 · 1380 次阅读 · 16 条评论

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 做得更好。

评论列表
jiawei.li 发表于 July 02, 2020

欢迎使用!!!

虎虎虎虎虎 发表于 July 10, 2020

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

MeterSphere 小助手 发表于 July 14, 2020

MeterSphere 小助手 发表于 July 14, 2020

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

huahuablue 发表于 July 15, 2020

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

jiawei.li 发表于 July 15, 2020

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

huis 发表于 July 16, 2020

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

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

jiawei.li 发表于 July 16, 2020

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

huis 发表于 July 17, 2020

再补充几个问题:

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

jmeter版本:5.1

jiawei.li 发表于 July 17, 2020

@sshh123

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

jiawei.li 发表于 July 22, 2020

@sshh123

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

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

此生不换 发表于 July 23, 2020

这个好

jwang 发表于 August 04, 2020

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

jwang 发表于 August 04, 2020

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

jwang 发表于 August 04, 2020

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