일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- query
- stored procedure
- await
- 쿼리 최적화
- async
- .net
- slow in the application
- oauth2
- identityserver3
- SQLServer
- task
- ThreadPool
- C#
- english
- validation
- async await
- 저장프로시저
- SQL Server Optimizer
- execution plan
- esl
- identityserver
- 느린 저장프로시저
- MSSQL
- fast in ssms
- Dataannotation
- TPL
- SSMS
- IdentityServer4
- 실행계획 원리
- 영어공부
- Today
- Total
shyaway
Swagger CodeGen 을 이용한 JMeter Project 만들기 본문
Swagger CodeGen 을 이용하여 JMeter 테스트 플랜 추출하기.
잘 알려졌다시피, JMeter 는 테스트 플랜을 작성하여 대량 HTTP Request 를 발생시켜 스트레스 테스트는 물론 유닛테스트까지 진행할 수 있는 매우 유용한 툴이다. RESTful API 프로젝트를 경험했다면, 한 번 이상은 써보는 툴이 아닌가 생각한다.
하지만 JMeter Thread Group 을 생성하고, Loop Count, Number Of Threads, HTTP Url, Port, API path, Parameters, Request Body 만들기 등, 테스트 준비를 위해 API 스펙을 일일히 체크하며 만드는 것은 상당한 단순 반복 작업을 요구한다. 현재 내가 개발 중인 API 는 300 여개에 달하는데, 1:1 로 테스트 플랜 작성하면... 어마어마한 시간이 걸릴 것이다.
그래서 자동으로 변환해주는 툴이 필요했는데, 마침 Swagger-Ui 도 사용하고 있어서, Swagger 에 Extension 같은 것이 없나 하고 찾아보다가 Swagger CodeGen ( https://swagger.io/swagger-codegen/ ) 을 발견하게 되었다. JSON 이나 YAML 으로 Formatting 된 API Description 을 지정한 언어 및 클라이언트 형태로 자동 변환해주는 툴이다.
실제로 Demo 로, https://editor.swagger.io//?_ga=2.265510287.1018892707.1525671527-715046869.1523851982#/ 에서 Swagger Editor 를 이용해서 JSON 을 작성한 후 Generate Server / Generate Client 를 통해 다양한 플렛폼 코드로 변환시킬 수 있다. 이 포스트에서는 외부망에 접근 불가능한 로컬 환경에서 사용할 수 있도록, CodeGen 직접 설치 및 사용 방법을 다뤄보도록 하겠다.
STEP 1. Java 설치
STEP 2. 환경변수 설정
STEP 3. CodeGen 다운로드
STEP 4. CodeGen Build
STEP 5. Generate Codes
java -jar modules\swagger-codegen-cli\target\swagger-codegen-cli.jar generate -i C:\Users\YourName\YourDownloadedJSON.json -l jmeter -o C:\MyTestPlans\JMeter
JMeter 뿐만 아니라...
java -jar modules\swagger-codegen-cli\target\swagger-codegen-cli.jar generate -i C:\Users\YourName\YourDownloadedJSON.json -l sharp -o C:\MyTestClient\CSharp
java -jar modules\swagger-codegen-cli\target\swagger-codegen-cli.jar generate -i C:\Users\YourName\YourDownloadedJSON.json -l java -o C:\MyTestClient\Java
Parameter Type 자동 생성, Parameter 가 모델 ( Class ) 인 경우 클래스 자동 생성, HTTP Request 코드 자동 생성, 프로젝트 자동 생성, 필요한 패키지 자동 생성 등... API 를 호출하기 위해 필요한 모든 것을 알아서 만들어 준다.
정말 편리하다.
Extract JMeter test plans with Swagger CodeGen
JMeter is a great tool. It generates HTTP request for you once properly set up with a test plan and you can assert the response by adding an assertion step in your plan. You can easily perform stress test with this tool. If you've ever worked on a RESTful API project, you may have already heard of it or used it.
But making a test plan is not an easy task. You have to fill in those forms like HTTP URL, port, protocol, parameters, loop count, and number of threads, and add summary report and etc. I'm working on a project that has more than 130 APIs. Making all of them one by one will take like forever.
So I came up with a tool that does the heavy lifting for me. I'm already using Swagger UI on the project, so I started out with searching an extension in the swagger and fortunately, it has Swagger CodeGen. It just automatically converts OPEN API formatted JSON or YAML API description into miscellaneous clients and platforms.
You can actually see the live demo in here https://editor.swagger.io//?_ga=2.265510287.1018892707.1525671527-715046869.1523851982#/ . Just type in a proper JSON and select the one you want to get among the list of " Generate Client " or " Generate Server ".
I'm going to deal with the private network circumstance where you can have no access to the external Internet. Here goes the installation of CodeGen in your local environment.
STEP 1. Install Java
STEP 2. Set up an environment variable
STEP 3. Download Swagger CodeGen
STEP 4. Build CodeGen
STEP 5. Generate Codes
java -jar modules\swagger-codegen-cli\target\swagger-codegen-cli.jar generate -i C:\Users\YourName\YourDownloadedJSON.json -l jmeter -o C:\MyTestPlans\JMeter
You can extract not only JMeter...
java -jar modules\swagger-codegen-cli\target\swagger-codegen-cli.jar generate -i C:\Users\YourName\YourDownloadedJSON.json -l sharp -o C:\MyTestClient\CSharp
java -jar modules\swagger-codegen-cli\target\swagger-codegen-cli.jar generate -i C:\Users\YourName\YourDownloadedJSON.json -l java -o C:\MyTestClient\Java
CodeGen just automatically generates parameter type, parameter model ( class ), HTTP Request codes, project structures, necessary packages or third party resources, and all of the prerequisites to call the APIs in a specific platform or language.
Truly saved ton of times with this tool !
'Dev Tool' 카테고리의 다른 글
Quick Diagram Tool for C# (2) | 2018.07.28 |
---|