作为性能工程师,我们花了大量的时间编写脚本。如果我们能找到一种能自动生成脚本的方法,那将是一个提高的能效的好事情。
在本文中,我演示解释如何使用 Swagger & openapi-generator 生成用于 API 测试的 JMeter 脚本。
我从 https://swagger.io/docs/specification/about/ 复制了以下内容,其中解释了什么是 Swagger / OpenAPI 规范。
OpenAPI 规范(以前称为 Swagger 规范)是 REST API 的 API 描述格式。OpenAPI 文件允许描述整个 API,包括:
API 规范可以用 YAML 或 JSON 编写。该格式易于学习,并且对人和机器都可读。
Swagger 是一套围绕 OpenAPI 规范构建的开源工具,它可以帮助您设计、构建、记录和使用 REST api。主要的 Swagger 工具包括:
Swagger Editor
- 基于浏览器的编辑器,您可以编写OpenAPI规范。Swagger UI
- 渲染 OpenAPI 规范作为交互式 API 文档。Swagger Codegen
- 一个模板驱动引擎,根据 OpenAPI 规范生成 stubs 和 客户端代码。API 描述其自身结构的能力是 OpenAPI 中所有出色功能的根源。编写完成后,OpenAPI 规范和 Swagger 工具可以通过各种方式进一步推动 API 开发:
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/
java -jar openapi-generator-cli-4.3.1.jar generate -i https://petstore.swagger.io/v2/swagger.json -g jmeter
如下所示:
在目录下生成以下内容:
使用 Jmeter 打开其中一个脚本瞧瞧:
如在上面看到的,代码生成工具已成功生成 JMeter 脚本,我们可以根据的项目要求轻松地对其进行脚本增强。如果我们去手动准备脚本,那可能要花很多时间。
测试过程中要善于合理利用轮子,节省开发时间,提高工作效率。
相关资料:
参考资料: