如何基于 Swagger 使用 OpenAPI Generator生成 JMeter 脚本

简介: 【2月更文挑战第24天】如何基于 Swagger 使用 OpenAPI Generator生成 JMeter 脚本

一、前言

作为性能工程师,我们花了大量的时间编写脚本。如果我们能找到一种能自动生成脚本的方法,那将是一个提高的能效的好事情。

在本文中,我演示解释如何使用 Swagger & openapi-generator 生成用于 API 测试的 JMeter 脚本。

二、预备知识

我从 https://swagger.io/docs/specification/about/ 复制了以下内容,其中解释了什么是 Swagger / OpenAPI 规范。

1、什么是 OpenAPI ?

OpenAPI 规范(以前称为 Swagger 规范)是 REST API 的 API 描述格式。OpenAPI 文件允许描述整个 API,包括:

  • 可用端点(/users)和操作上的每个端点(GET /users,POST /users)
  • 操作参数每次操作的输入和输出
  • 认证方式
  • 联系信息,许可,使用条款和其他信息。

API 规范可以用 YAML 或 JSON 编写。该格式易于学习,并且对人和机器都可读。

2、什么是 Swagger?

Swagger 是一套围绕 OpenAPI 规范构建的开源工具,它可以帮助您设计、构建、记录和使用 REST api。主要的 Swagger 工具包括:

  • Swagger Editor - 基于浏览器的编辑器,您可以编写OpenAPI规范。
  • Swagger UI - 渲染 OpenAPI 规范作为交互式 API 文档。
  • Swagger Codegen - 一个模板驱动引擎,根据 OpenAPI 规范生成 stubs 和 客户端代码。

3、为什么要使用 OpenAPI?

API 描述其自身结构的能力是 OpenAPI 中所有出色功能的根源。编写完成后,OpenAPI 规范和 Swagger 工具可以通过各种方式进一步推动 API 开发:

  • 设计优先的用户:使用 Swagger Codegen 为你的 API 生成服务器 stub 。剩下的唯一事情就是实现服务器逻辑——你的API已经准备好了!
  • 使用 Swagger Codegen 以 40 多种语言为您的 API 生成客户端库。
  • 使用 Swagger UI 生成交互式 API 文档,使您的用户可以直接在浏览器中尝试API调用。
  • 使用规范将与 API 相关的工具连接到您的 API。例如,将规范导入 SoapUI,以及您的 API 创建自动化测试。

三、OpenAPI Generator

Swagger 提供的客户端生成功能可用于生成 JMeter 脚本。但是出于安全考虑,为此目的使用 Swagger Editor 并不是理想的选择。Swagger 编辑器是一个托管解决方案。
我们可以在 https://openapi-generator.tech/docs/installation/ 下安装 Swagger Code Gen 或 Open API Generator 客户端。
使用 Code Gen Jar 客户端,您可以生成提供 API 规范的 JMeter 脚本,如以下命令所示:


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

我使用默认的 Petstore API Swagger(官方demo) 规范生成了 JMeter脚本。

官方提供的 demo 地址:http://petstore.swagger.io/

image.png

 java -jar openapi-generator-cli-4.3.1.jar generate -i https://petstore.swagger.io/v2/swagger.json -g jmeter

如下所示:

image.png

在目录下生成以下内容:

image.png

我们使用 Jmeter 打开其中一个脚本瞧瞧:
image.png

如在上面看到的,代码生成工具已成功生成 JMeter 脚本,用我们可以根据的项目要求轻松地对其进行脚本增强。如果我们去手动准备脚本,那可能要花很多时间。

四、小结

测试过程中要善于合理利用轮子,节省开发时间,提高工作效率。

相关资料:

参考资料:

目录
相关文章
|
7月前
|
编解码 测试技术 索引
性能工具之 Jmeter 使用 HTTP 请求编写 HLS 脚本
在我们简要介绍了 HLS 协议的基础知识,接下来我们详细介绍一种使用 Jmeter 编写压测 HLS 协议脚本的方法。
156 1
性能工具之 Jmeter 使用 HTTP 请求编写 HLS 脚本
|
监控 Java 关系型数据库
『Jmeter超级干货』| Linux下Jmeter安装配置、脚本设计执行、监控及报告完整过程
『Jmeter超级干货』| Linux下Jmeter安装配置、脚本设计执行、监控及报告完整过程
1950 1
|
7月前
|
Dubbo Java 应用服务中间件
性能工具之JMeter Dubbo 脚本开发
【5月更文挑战第13天】性能工具之JMeter Dubbo 脚本开发
91 3
性能工具之JMeter Dubbo 脚本开发
|
4月前
|
Java
性能分析之JMeter 脚本执行失败导致的问题
【8月更文挑战第20天】性能分析之JMeter 脚本执行失败导致的问题
119 0
|
6月前
|
JSON 中间件 Java
中间件中OpenAPI (Swagger)
【6月更文挑战第3天】
105 4
|
7月前
|
小程序 Java 编译器
性能工具之JMeter 微信小程序 WebSocket 脚本入门
【5月更文挑战第12天】性能工具之JMeter 微信小程序 WebSocket 脚本入门
225 1
|
7月前
|
前端开发 Java 测试技术
性能工具之 JMeter 上传与下载脚本编写
【4月更文挑战第3天】性能测试工作中,文件上传也是经常见的性能压测场景之一,那么 JMeter 文件上传下载脚本怎么做?
117 2
性能工具之 JMeter 上传与下载脚本编写
|
7月前
|
XML Shell Linux
性能工具之 JMeter 使用 Python 脚本快速执行
性能工具之 JMeter 使用 Python 脚本快速执行
125 1
性能工具之 JMeter 使用 Python 脚本快速执行
|
7月前
|
Shell Linux 网络安全
性能工具之 JMeter 使用 shell 脚本快速执行
【2月更文挑战第30天】性能工具之 JMeter 使用 shell 脚本快速执行
425 1
性能工具之 JMeter 使用 shell 脚本快速执行
|
7月前
|
API Go
.NET7 Preview4 之OpenAPI swagger改进
.NET7 Preview4 之OpenAPI swagger改进
58 0