我们熟知,Jmeter可以自身录制脚本,还可以Fiddler录制生成Jmeter脚本,不管是Jmeter本身的录制还是Fiddler录制,都需要耗费较长的时间。
今天我们介绍更简便的方法:
1.swagger通过OpenAPI Generator自动生成Jmeter脚本。
2.swagger通过python脚本自动生成jmeter脚本(此处用的swaggerjmx库)推荐
① win10
② swagger文档
③ OpenAPI Generator jar包(前提配置jdk)
④ swaggerjmx开源地址 推荐
⑤jmeter工具
下载链接: 官方maven下载地址,就不提供盘了
https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/
pip install -U swaggerjmx
Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。官方传送门:
https://swagger.io/
① 准备一份swagger接口文档。公司的或者自己练习项目使用的swagger接口都可以。为了方便大家边看文章边练习,这里附上官方提供的swagger地址:
https://petstore.swagger.io
② 点击页面https://petstore.swagger.io/v2/swagger.json的链接,跳转到swagger.json页面。
③ swagger.json页面,快捷键ctrl+s,保存到本地。
保存为json文件到指定目录即可
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等文件。
# -*- 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
# -*- 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 -i tests/data/swagger.json -o jmx
swaggerjmx -i https://ip:port/v2/api-docs -o jmx
① 打开Jmeter程序。
② Jmeter菜单栏,依次选择File–>Open。
③ 选择UserApi.jmx,导入到jmeter。
④ 我们可以发现,接口的相关数据已经填充了。