개요
개발 공부를 시작할 때, 서버에서 사용하는 자원을 줄여야 한다는 사실은 누구나 알고 있습니다.
하지만, 이제 막 공부를 시작했다면 서버의 처리량이 얼마나 되는지, 내가 리팩토링을 했을 때 처리량이 얼마나 늘어나는지 확인할 수단이 마땅찮을 것입니다.
이 때 사용할 수 있는 소프트웨어가 바로 Jmeter, nGrinder입니다.
이번 글에서는 Jmeter를 이용해 HTTP Request를 임의로 서버로 전송함으로, 스트레스 테스트를 진행하는 방법을 알아보겠습니다.
다운로드
사용법은 매우 간단합니다.
공식 링크 - https://jmeter.apache.org/download_jmeter.cgi

위의 링크에 접속하여, apache-jmeter-5.6.2.zip파일을 다운로드 받습니다.
압축을 푼 뒤, bin폴더 내에 있는 jmeter.bat 파일을 실행하면 콘솔창과 함께 jmeter를 사용할 수 있습니다.
사용법

JMeter를 실행하면 가장 먼저 좌측 Test Plan을 보실 수 있습니다.
우측클릭을 하고, Add - Threads(Users) - Thread Group을 클릭하시면 새 창이 열립니다.

해당 메뉴에서 간단하게 옵션을 조절할 수 있습니다.
Number of Threads(users)는 서버로 Request를 보내는 Thread(유저 수)가 될 것입니다.
Ramp-up period는 전체 Thread를 실행시키는 데 걸리는 시간을 나타냅니다.
Loop Count는 요청을 반복하는 횟수입니다.
위의 설정으로 Jmeter를 실행한다면, 5000개의 Theads(users)들을 1초 내로 실행시키고, 60번 요청을 보내라는 것으로 해석할 수 있습니다.

Spring의 HTTP Request를 테스트한다면, Thread Group을 우클릭하고 Add - Sampler - HTTP Request를 선택합니다.

이후 확인할 수 있는 창의 Server Name or IP칸에 IP를, Port Number에 Port를 기입하시면 됩니다.
테스트하고 싶은 Request Method, Path까지 입력하면, 위에서 설정한 유저들이 해당 HTTP Request를 보내게 됩니다.
이때, 테스트 결과가 밋밋하게 보일 수 있습니다.
이러한 결과를 실시간으로, 그래프로 확인할 수 있는 플러그인이 있습니다.
Jmeter Graph Plugin - https://jmeter-plugins.org/?search=jpgc-graphs-basic
JMeter Plugins :: JMeter-Plugins.org
jmeter-plugins.org
위의 링크에 들어가 2.0버전을 다운로드 받고, Jmeter폴더의 lib위치에 적절하게 추가합니다.
이후 Jmeter를 재실행합니다.

다시 Test Plan을 우클릭하고, Add - Listener로 들어가면 새 메뉴들이 추가되었습니다.
TPS(초당 트랜잭션)을 확인하기 위해 해당 메뉴를 선택합니다.

상단의 초록색 시작 버튼을 클릭하고, Warning창은 한번 읽어보시면 됩니다.

테스트 완료 이후, 결과를 따로 저장할 수도 있습니다.
만약 처리량을 넘어서거나 에러 등이 발생한다면, 다른 색깔의 선으로 reject등의 정보가 표시됩니다.
이렇게 JMeter를 사용하여 Spring에서 초당 트랜잭션을 테스트하는 방법을 간단하게 알아봤습니다.
'WEB > Spring' 카테고리의 다른 글
[Spring] Virtual Thread, DB IO테스트시 발생했던 문제 - 1 (1) | 2024.01.21 |
---|---|
[Spring] HikariCP 알아보기 (0) | 2024.01.14 |
[Spring] Actuator (1) | 2024.01.04 |
[Spring] SpringBoot에서의 Virtual Thread (2) | 2023.12.31 |
[Spring] Spring의 ThreadPool (1) | 2023.12.31 |
개요
개발 공부를 시작할 때, 서버에서 사용하는 자원을 줄여야 한다는 사실은 누구나 알고 있습니다.
하지만, 이제 막 공부를 시작했다면 서버의 처리량이 얼마나 되는지, 내가 리팩토링을 했을 때 처리량이 얼마나 늘어나는지 확인할 수단이 마땅찮을 것입니다.
이 때 사용할 수 있는 소프트웨어가 바로 Jmeter, nGrinder입니다.
이번 글에서는 Jmeter를 이용해 HTTP Request를 임의로 서버로 전송함으로, 스트레스 테스트를 진행하는 방법을 알아보겠습니다.
다운로드
사용법은 매우 간단합니다.
공식 링크 - https://jmeter.apache.org/download_jmeter.cgi

위의 링크에 접속하여, apache-jmeter-5.6.2.zip파일을 다운로드 받습니다.
압축을 푼 뒤, bin폴더 내에 있는 jmeter.bat 파일을 실행하면 콘솔창과 함께 jmeter를 사용할 수 있습니다.
사용법

JMeter를 실행하면 가장 먼저 좌측 Test Plan을 보실 수 있습니다.
우측클릭을 하고, Add - Threads(Users) - Thread Group을 클릭하시면 새 창이 열립니다.

해당 메뉴에서 간단하게 옵션을 조절할 수 있습니다.
Number of Threads(users)는 서버로 Request를 보내는 Thread(유저 수)가 될 것입니다.
Ramp-up period는 전체 Thread를 실행시키는 데 걸리는 시간을 나타냅니다.
Loop Count는 요청을 반복하는 횟수입니다.
위의 설정으로 Jmeter를 실행한다면, 5000개의 Theads(users)들을 1초 내로 실행시키고, 60번 요청을 보내라는 것으로 해석할 수 있습니다.

Spring의 HTTP Request를 테스트한다면, Thread Group을 우클릭하고 Add - Sampler - HTTP Request를 선택합니다.

이후 확인할 수 있는 창의 Server Name or IP칸에 IP를, Port Number에 Port를 기입하시면 됩니다.
테스트하고 싶은 Request Method, Path까지 입력하면, 위에서 설정한 유저들이 해당 HTTP Request를 보내게 됩니다.
이때, 테스트 결과가 밋밋하게 보일 수 있습니다.
이러한 결과를 실시간으로, 그래프로 확인할 수 있는 플러그인이 있습니다.
Jmeter Graph Plugin - https://jmeter-plugins.org/?search=jpgc-graphs-basic
JMeter Plugins :: JMeter-Plugins.org
jmeter-plugins.org
위의 링크에 들어가 2.0버전을 다운로드 받고, Jmeter폴더의 lib위치에 적절하게 추가합니다.
이후 Jmeter를 재실행합니다.

다시 Test Plan을 우클릭하고, Add - Listener로 들어가면 새 메뉴들이 추가되었습니다.
TPS(초당 트랜잭션)을 확인하기 위해 해당 메뉴를 선택합니다.

상단의 초록색 시작 버튼을 클릭하고, Warning창은 한번 읽어보시면 됩니다.

테스트 완료 이후, 결과를 따로 저장할 수도 있습니다.
만약 처리량을 넘어서거나 에러 등이 발생한다면, 다른 색깔의 선으로 reject등의 정보가 표시됩니다.
이렇게 JMeter를 사용하여 Spring에서 초당 트랜잭션을 테스트하는 방법을 간단하게 알아봤습니다.
'WEB > Spring' 카테고리의 다른 글
[Spring] Virtual Thread, DB IO테스트시 발생했던 문제 - 1 (1) | 2024.01.21 |
---|---|
[Spring] HikariCP 알아보기 (0) | 2024.01.14 |
[Spring] Actuator (1) | 2024.01.04 |
[Spring] SpringBoot에서의 Virtual Thread (2) | 2023.12.31 |
[Spring] Spring의 ThreadPool (1) | 2023.12.31 |