swagger接口转jmeter脚本进行压测的方法总结

我们熟知,Jmeter可以自身录制脚本,还可以Fiddler录制生成Jmeter脚本,不管是Jmeter本身的录制还是Fiddler录制,都需要耗费较长的时间。

今天我们介绍更简便的方法:

1.swagger通过OpenAPI Generator自动生成Jmeter脚本。

2.swagger通过python脚本自动生成jmeter脚本(此处用的swaggerjmx库)推荐

环境准备说明


① win10
② swagger文档
③ OpenAPI Generator jar包(前提配置jdk)
④ swaggerjmx开源地址 推荐

⑤jmeter工具

OpenAPI Generator jar包


下载链接: 官方maven下载地址,就不提供盘了

https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/


swaggerjmx安装


pip install -U swaggerjmx

swagger文档生成json文件


Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。官方传送门:

https://swagger.io/

① 准备一份swagger接口文档。公司的或者自己练习项目使用的swagger接口都可以。为了方便大家边看文章边练习,这里附上官方提供的swagger地址:

https://petstore.swagger.io

如下图所示:swagger接口转jmeter脚本进行压测的方法总结_第1张图片

② 点击页面https://petstore.swagger.io/v2/swagger.json的链接,跳转到swagger.json页面。swagger接口转jmeter脚本进行压测的方法总结_第2张图片

③ swagger.json页面,快捷键ctrl+s,保存到本地。
保存为json文件到指定目录即可

OpenAPI Generator下载及生成jmeter脚本


OpenAPI Generator 可用于在给定 OpenAPI 规范(v2, v3)的情况下自动生成 API 客户端库、server stubs、文档以及配置。传送门。选择自己的系统下载即可。

下载完成后,将openapi-generator-cli-5.1.0.jar和之前保存到本地的swagger.json文件放到同一目录下。
接下来就要生成jmeter脚本了。切换到存放openapi-generator-cli-5.1.0.jar及swagger.json目录下,执行命令:


java -jar openapi-generator-cli-5.1.0.jar generate -i swagger.json -g jmeter

当然,能够成功执行命令的前提是,已经安装、配置jdk、jmeter。

吐槽:

Exception in thread "main" org.openapitools.codegen.SpecValidationException: There were issues with the specification. The option can be disabled via validateSpec (Maven/Gradle) or --skip-validate-spec (CLI).

我使用此版本会报错,有时间的查找下原因,目前3.0.3版本可用

命令执行成功后,在目录下会生成csv、jmx等文件。

swaggerjmx 安装及生成jmeter脚本


适用场景

  1. 接口测试脚本生成,而且需要经常调用脚本调用,使用这个按钮生成接口测试。
  2. swagger-ui接口文档一键生成jmx文件供jmeter使用。
  3. yapi接口文档一键生成jmx文件供jmeter使用。

功能

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

代码方式

演示_1

  • 可以直接访问 swagger_url ( http://ip:port/v2/api-doc ) 不需要的登录方式,使用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()

演示_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()

特殊方式


swagger json example

swaggerjmx -i tests/data/swagger.json -o jmx

swagger url example

swaggerjmx -i https://ip:port/v2/api-docs -o jmx

Jmeter导入自动生成的jmx脚本


① 打开Jmeter程序。
② Jmeter菜单栏,依次选择File–>Open。
③ 选择UserApi.jmx,导入到jmeter。

swagger接口转jmeter脚本进行压测的方法总结_第3张图片

 ④ 我们可以发现,接口的相关数据已经填充了。

swagger接口转jmeter脚本进行压测的方法总结_第4张图片

你可能感兴趣的:(测试工具&框架,jmeter,java,开发语言,python,自动化)