사용 계기
백엔드 개발을 하면서 부하 테스트는 필수적인 작업 중 하나입니다.
하지만 보통 Postman과 같은 툴로는 원하는 결과를 도출하기 어렵다는 것을 느꼈습니다.
그러던 중 우연히 알게 된 Jmeter은 DB에 접속하여 SQL문으로 바로 부하테스트를 할 수 있을 뿐만 아니라 RestAPI 테스트를 요청할 수 있는 기능들이 있었습니다.
여러 가지 데이터들로 결과를 얻을 수 있기 때문에, 좀 더 상세한 결과를 얻고자 할 때 매우 유용한 툴입니다. 이번에는 Jmeter을 처음 사용해보았지만, 기초적인 사용 방법을 정리해보고자 합니다.
JMeter란?
JMeter은 Apache 소프트웨어 재단에서 개발 및 유지보수하는 오픈 소스 부하 테스트 도구입니다.
Java로 작성되었으며, 다양한 프로토콜 (HTTP, FTP, JDBC 등) 및 서버 유형 (웹, 데이터베이스, 애플리케이션 서버 등)을 지원하여 서버의 성능을 측정하고 부하를 테스트하는 데 사용됩니다.JMeter은 사용하기 쉬운 GUI(그래픽 사용자 인터페이스)를 제공하며, 다양한 기능들을 지원합니다.
예를 들어, 여러 스레드를 사용하여 동시에 여러 사용자를 시뮬레이션할 수 있으며, 각 스레드에서는 특정 행동을 수행할 수 있습니다.
또한, JMeter은 특정 시간 동안 부하를 유지하거나, 최대 부하에서 성능을 측정하는 등의 다양한 부하 테스트 방법을 제공합니다.JMeter은 오픈 소스이므로 무료로 다운로드 및 사용이 가능하며, 사용자 커뮤니티가 활발하여 다양한 플러그인 및 익스텐션도 존재합니다. > 이러한 기능들을 활용하면 더욱 다양하고 복잡한 테스트 시나리오를 구성할 수 있습니다.
JMeter 설치 & 실행 방법
- JMeter 설치 홈페이지 접속
- 최신 버전 확인 > Binaries > apache-jmeter-5.5.zip 다운로드
- ZIP파일 압축 풀기
- bin 폴더 이동
- JMeter 배치 파일 실행
손쉬운 사용
- JMeter 배치 파일 오른쪽 클릭
- 바로가기 아이콘 생성
- 원하는 위치에 놓고 사용
임시 예제 생성
외부 블로그 따라 실행 하였습니다.
실행 순서 & 설명을 동시에 작성 하겠습니다.
1. Thread Group을 생성
생성된 그룹들이 하나하나의 Request가 됩니다.
- Action To Be Taken after a Sampler Error : 오류가 발생했을 때 JMeter가 취해야 할 조치
- Continue
- 샘플러 오류가 발생해도 테스트를 계속합니다. 이 경우 오류가 발생한 샘플러는 결과 보고서에 실패한 것으로 표시됩니다.
- Start Next Thread Loop
- 샘플러 오류가 발생하면 해당 스레드 루프를 종료하고 다음 루프를 시작합니다.
- Stop Thread
- 샘플러 오류가 발생하면 해당 스레드를 중지합니다.
- Stop Test
- 샘플러 오류가 발생하면 모든 스레드를 중지하고 테스트를 종료합니다.
- Stop Test Now
- 샘플러 오류가 발생하면 즉시 모든 스레드를 중지하고 테스트를 종료합니다.
- Continue
- Ramp-Up Period
- 스레드가 시작되는 시점부터 다음 스레드가 시작되는 시점까지의 시간 간격입니다.
- 이 값을 증가시키면 점진적으로 부하를 증가시킬 수 있습니다.
- Loop Count
- 스레드가 수행하는 루프의 횟수를 설정합니다.
- 이 값을 증가시키면 스레드가 더 많은 작업을 수행할 수 있습니다.
- Scheduler Configuration
- 스레드 실행을 예약할 수 있습니다.
- 이를 사용하면 특정 시간대에 부하를 집중시켜서 테스트를 수행할 수 있습니다.
- Duration (seconds)
- 스레드가 실행될 총 시간을 설정합니다.
- 이 값을 변경하면 스레드가 수행하는 시간을 조정할 수 있습니다.
- Startup Delay (seconds)
- 스레드가 시작되기 전에 대기하는 시간을 설정합니다.
- 이를 사용하면 스레드 시작 간격을 조정할 수 있습니다.
- Shutdown Timeout (seconds)
- 스레드가 중지되기 전에 대기하는 시간을 설정합니다.
- 이를 사용하면 스레드가 정상적으로 종료될 때까지 기다릴 수 있습니다.
2. Http Request 생성
위와 같이 생성 하면 Request 설정 창이 뜬다.
우클릭후 하나 씩 보면 Sampler에 JDBC도 있는데 이는 DB 바로 접속해서 Query 과부하를 테스트 할수잇게 하는도구이다.
다만 JDBC는 접근 할때 필요한 lib가 필요하다.
이는 나중에 올리도록 하겠습니다.
그리고 이미지에 View Result Tree(Test Plan > 우클릭 > add > Listener)가 있는데 이는 Request 한 결과들을 출력해준다.
꼭 이뿐만 아니라 자세 하기 까진 아니여도 하나 씩 클릭 해보면서 어떤건지 확인해 보면 좋은거 같다.
후기
JMeter를 처음 사용했지만, 기본적인 내용을 작성해봤습니다.
처음 사용하는 분들은 하나씩 눌러가며 테스트하는 것이 좋을 것 같습니다.
시나리오를 만들어가는 것도 중요하지만, 현재 단계에서는 각 기능들이 어떤 동작을 하는지 확인하는 것이 중요합니다.
JMeter의 기본적인 사용 방법을 숙지하면 시나리오 작성에도 도움이 될 것입니다.
'Server' 카테고리의 다른 글
CAP 이론 (0) | 2024.02.03 |
---|---|
낙관적인락(Optimistic Locking) / 비관적인(Pessimistic Locking) (0) | 2023.08.09 |
Docker 공부 하면서 주로 사용하는 명령어 (0) | 2023.04.16 |
도커 사용법[2] (0) | 2023.04.16 |
도커 사용법[1] (0) | 2023.04.16 |