반응형
Apache Jmeter 대용량 트래픽 테스트
JMeter란?
- JMeter는 Apache Software Foundation에서 개발하고 유지보수하는 오픈소스 로드 테스트 도구입니다. 주로 웹 애플리케이션, 웹 서비스, FTP 등 다양한 프로토콜을 지원하며, 대규모 분산 테스트를 위한 기능도 제공합니다.
- JMeter는 사용자가 작성한 테스트 계획을 기반으로 요청을 전송하고 응답 시간, 처리량, 에러율 등의 테스트 결과를 수집합니다. 사용자는 JMeter 내장 GUI를 통해 테스트 계획을 작성하거나, 스크립트를 작성하여 테스트를 수행할 수 있습니다.
장점
- 무료이며 오픈소스로 공개되어 있어 비용이 들지 않습니다.
- 다양한 프로토콜을 지원하며, 확장성이 뛰어나 사용자 정의 요청 처리도 가능합니다.
- 다양한 그래프 및 리포트를 제공하여 결과 분석이 쉽습니다.
- 자바 기반으로 개발되어 있어 운영체제와 상관없이 실행할 수 있습니다.
비교
- JMeter:
- 난이도: 초급~중급
- 시나리오 작성 난이도: 중간
- 시나리오 작성법: GUI 기반으로 쉽게 시나리오를 작성할 수 있습니다.
- 장점: 사용이 간편하며, 다양한 프로토콜을 지원합니다. 또한, 다양한 플러그인을 제공하여 더욱 다양한 기능을 추가할 수 있습니다.
- 단점: 대규모 트래픽에 대한 처리가 어렵고, 멀티스레드 처리 시 메모리 누수 현상이 발생할 수 있습니다.
- Gatling:
- 난이도: 중급~고급
- 시나리오 작성 난이도: 매우 높음
- 시나리오 작성법: Scala 언어 기반으로 작성되어 있어, 프로그래밍 지식이 필요합니다.
- 장점: 시나리오 작성에 대한 유연성이 뛰어나며, 코드 기반의 테스트를 지원합니다. 또한, 대규모 트래픽에 대한 처리가 용이합니다.
- 단점: 처음 사용하는 사용자에게는 진입 장벽이 높을 수 있습니다.
- nGrinder:
- 난이도: 중급~고급
- 시나리오 작성 난이도: 높음
- 시나리오 작성법 : Java 기반으로 작성되어 있으며, JUnit을 기반으로한 스크립트를 지원합니다.
- 장점: 사용이 간편하며, 클러스터링 기능을 제공하여 대규모 트래픽에 대한 처리가 가능합니다. 또한, 스크립트 레코딩 기능이 있어 빠른 테스트 시간을 보장합니다.
- 단점: 지원되는 프로토콜이 제한적이며, 커스터마이징이 어려울 수 있습니다.
테스트 하기
Apache Jmeter를 아래의 경로에서 다운로드 받아준다
https://jmeter.apache.org/download_jmeter.cgi
1. zip파일을 다운받아준다
- MAC의 경우
brew install jmeter
로 설치해준다
2. 압축 해제 후 bin폴더에 들어가 jmeter.bat파일을 실행시켜 준다
- MAC의 경우
open /usr/local/bin/jmeter
을 실행해준다
3. Add - Threads - Thread Group를 선택해준다
4. Thread Properties의 값을 입력해준다
- Number of Threads (user) : Thread의 개수 (유저수)
- Ramp-up period (seconds) : 요청 시간 초
- Loop Count : 반복 횟수 ( infinite : 무한반복)
5. Thread Group 우클릭 - ADD - Sampler - Http Request를 추가해준다
6. 호출할 API정보를 입력해준다
7. Add - Listener엔 여러가지 LIstener가 있는데 필요한 리스너를 등록해준다
- View Results Tree 예시
- Aggregate Report 예시
- View Results In Table 예시
8. 재생 버튼을 눌러준다.
9. 설정을 파일로 저장 여부를 선택한다.
10. 중지를 하고 싶다면 중지 버튼을 누르고 결과를 확인한다.
CLI
CI/CD 에 다음과 같이 적용하면 자동화를 할 수 있다.
/apache-jmeter-5.5/bin/jmeter -n -t ./test.jmx
참고
반응형
'공부 > 기타' 카테고리의 다른 글
Naver pinpoint 사용하기 (0) | 2023.03.17 |
---|---|
Github Action, Jenkins차이 CI/CD (0) | 2023.03.09 |
댓글