遠(yuǎn)程辦公”">國(guó)務(wù)院聯(lián)防聯(lián)控機(jī)制新聞發(fā)布會(huì),多次肯定“云辦公”、“遠(yuǎn)程辦公”
1452
2025-03-31
前言
預(yù)備知識(shí)
什么是 OpenAPI ?
什么是 Swagger?
為什么要使用 OpenAPI?
前言
預(yù)備知識(shí)
什么是 OpenAPI ?
什么是 Swagger?
為什么要使用 OpenAPI?
OpenAPI Generator
小結(jié)
前言
作為性能工程師,我們花了大量的時(shí)間編寫(xiě)腳本。如果我們能找到一種能自動(dòng)生成腳本的方法,那將是一個(gè)提高的能效的好事情。
在本文中,我演示解釋如何使用 Swagger & openapi-generator 生成用于 API 測(cè)試的 JMeter 腳本。
預(yù)備知識(shí)
我從 https://swagger.io/docs/specification/about/ 復(fù)制了以下內(nèi)容,其中解釋了什么是 Swagger / OpenAPI 規(guī)范。
什么是 OpenAPI ?
OpenAPI 規(guī)范(以前稱為 Swagger 規(guī)范)是 REST API 的 API 描述格式。OpenAPI 文件允許描述整個(gè) API,包括:
可用端點(diǎn)(/users)和操作上的每個(gè)端點(diǎn)(GET /users,POST /users)
操作參數(shù)每次操作的輸入和輸出
認(rèn)證方式
聯(lián)系信息,許可,使用條款和其他信息。
API 規(guī)范可以用 YAML 或 JSON 編寫(xiě)。該格式易于學(xué)習(xí),并且對(duì)人和機(jī)器都可讀。
什么是 Swagger?
Swagger 是一套圍繞 OpenAPI 規(guī)范構(gòu)建的開(kāi)源工具,它可以幫助您設(shè)計(jì)、構(gòu)建、記錄和使用 REST api。主要的 Swagger 工具包括:
Swagger Editor - 基于瀏覽器的編輯器,您可以編寫(xiě)OpenAPI規(guī)范。
Swagger UI - 渲染 OpenAPI 規(guī)范作為交互式 API 文檔。
Swagger Codegen - 一個(gè)模板驅(qū)動(dòng)引擎,根據(jù) OpenAPI 規(guī)范生成 stubs 和 客戶端代碼。
為什么要使用 OpenAPI?
API 描述其自身結(jié)構(gòu)的能力是 OpenAPI 中所有出色功能的根源。編寫(xiě)完成后,OpenAPI 規(guī)范和 Swagger 工具可以通過(guò)各種方式進(jìn)一步推動(dòng) API 開(kāi)發(fā):
設(shè)計(jì)優(yōu)先的用戶:使用 Swagger Codegen 為你的 API 生成服務(wù)器 stub 。剩下的唯一事情就是實(shí)現(xiàn)服務(wù)器邏輯——你的API已經(jīng)準(zhǔn)備好了!
使用 Swagger Codegen 以 40 多種語(yǔ)言為您的 API 生成客戶端庫(kù)。
使用 Swagger UI 生成交互式 API 文檔,使您的用戶可以直接在瀏覽器中嘗試API調(diào)用。
使用規(guī)范將與 API 相關(guān)的工具連接到您的 API。例如,將規(guī)范導(dǎo)入 SoapUI,以及您的 API 創(chuàng)建自動(dòng)化測(cè)試。
OpenAPI Generator
Swagger 提供的客戶端生成功能可用于生成 JMeter 腳本。但是出于安全考慮,為此目的使用 Swagger Editor 并不是理想的選擇。Swagger 編輯器是一個(gè)托管解決方案。
我們可以在 https://openapi-generator.tech/docs/installation/ 下安裝 Swagger Code Gen 或 Open API Generator 客戶端。
使用 Code Gen Jar 客戶端,您可以生成提供 API 規(guī)范的 JMeter 腳本,如以下命令所示:
java -jar openapi-generator-cli-4.1.2.jar generate -i swagger.json -g jmeter
我使用默認(rèn)的 Petstore API Swagger(官方demo) 規(guī)范生成了 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
如下所示:
在目錄下生成以下內(nèi)容:
我們使用 Jmeter 打開(kāi)其中一個(gè)腳本瞧瞧:
如在上面看到的,代碼生成工具已成功生成 JMeter 腳本,用我們可以根據(jù)的項(xiàng)目要求輕松地對(duì)其進(jìn)行腳本增強(qiáng)。如果我們?nèi)ナ謩?dòng)準(zhǔn)備腳本,那可能要花很多時(shí)間。
小結(jié)
測(cè)試過(guò)程中要善于合理利用輪子,節(jié)省開(kāi)發(fā)時(shí)間,提高工作效率。
相關(guān)資料:
https://github.com/zuozewei/blog-example/tree/master/Performance-testing/01-test-tool/jmeter/openapi-generator-cli
參考資料:
[1]:https://swagger.io/docs/specification/about/
[2]:https://github.com/OpenAPITools/openapi-generator
Generator OpenAPI 壓力測(cè)試
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。