| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 코딩교육봉사
- python
- 1과목
- 회고
- kotlin
- 정보처리산업기사
- programmers
- CJ UNIT
- MYSQL
- SW봉사
- SQL
- 프로그래머스
- BFS
- 문제풀이
- 자바
- 도커
- 백준
- 데이터베이스
- 백준알고리즘
- docker
- 알고리즘
- softeer
- 공부일지
- java
- 파이썬
- 소프티어
- 코딩봉사
- 코틀린
- C++
- 백준 알고리즘
- Today
- Total
JIE0025
[Apache JMeter] JMeter란? / 구성 요소 / mac 설치 방법 본문
✅ 개요
업무상 7월에 성능테스트를 접하게 되어 2주간의 빠른 기술학습과 책1권 정독을 마치고
테스트 시나리오 1-2건에 대한 스크립트 작성
성능테스트 당일에 WAS모니터링에 대한 업무지원을 했다.
이에 따라 학습했던 내용을 기억하기 위해
처음부터 내용을 적는다.
✅ Apache JMeter

제이미터는 아파치에서 제공하는 성능테스트 도구 오픈소스이다.
순수 자바 애플리케이션을 테스트할 수 있다.
서버 / 네트워크 / 개체에 대한 과부하를 시뮬레이션하면서
부하를 어디까지 버티는지 등 다양한 유형의 성능을 분석할 수 있다.
Apache JMeter - Apache JMeter™
Apache JMeter™ The Apache JMeter™ application is open source software, a 100% pure Java application designed to load test functional behavior and measure performance. It was originally designed for testing Web Applications but has since expanded to oth
jmeter.apache.org
✅ Apache JMeter 특징
0. 오픈소스 소프트웨어이기 떄문에 무료이다.
기여자 커뮤니티에 의해서 지속적으로 업데이트 된다.
1. 다양한 프로토콜이 지원된다.
- Web - HTTP, HTTPS (Java, NodeJS, PHP, ASP.NET, …)
- SOAP / REST Webservices
- FTP
- Database via JDBC
- LDAP
- Message-oriented middleware (MOM) via JMS
- Mail - SMTP(S), POP3(S) and IMAP(S)
- Native commands or shell scripts
- TCP
- Java Objects
++ JMeter Plugin이라는 프로젝트가 있다.
JMeter Plugins :: JMeter-Plugins.org
jmeter-plugins.org
JMeter의 기본 기능만으로는 해소하지 못하는
그 외 기능은 Plugin을 통해 활용 할 수 있다.
✅ 구성 요소
# 테스트 계획
Jmeter가 테스트를 수행할 때 실현할 일련의 단계를 정의하는것이다.
사용자의 수 / 요청 유형 / 루프 / 조건문 등 포함하고 싶은 논리가 포함된다.
# Element
: 테스트 계획 밑에 있는 모든 요소들을 Element라고 한다.
# Thread Group
: 몇개의 스레드를 몇초안에 보낼지 등 테스트할 스레드의 정보를 입력한다.
# Sampler
: 요청을 보내는 컴포넌트이다. ( HTTP요청 / JDBC요청 등 )
# Controller
: 순서/ 반복/ 조건등 설정할 수 있다.
Example )
스레드 그룹 설정 : 스레드를 10개 생성했고 각스레드는 1번만 처리한다.
스레드 그룹 내부에 Once only Controller + While Controller 로 구성되어 있다.
Once only Controller 내부에 있는 sampler는 어떤 스레드간 1번만 처리한다. (스레드별 1번 처리하므로 총 10번 처리된다. )
이후 While Controller에서 3번씩 동작하게 할 경우 10개의 스레드는 각각 While Controller 내부의 요청을 3번 반복하게 될 것 이다. (10개의 스레드가 3번씩 반복 > 총 30번)
# Listeners
테스트 결과를 표시/ 저장하는 컴포넌트이다.
view result tree, summary report 등이 있다.
# Assertions
: 응답 결과에 대한 검증 컴포넌트이다.
예를들어 응답이 200이 와야하고, body안에 ResultCount : 의 값이 1 이상이어야한다.
이럴 경우 Assertions 에 Response code / body 에 대한 정의를 해주면 된다.
테스트를 돌렸을 때 정상적인 값 / 다른 값이 나오는지 확인이 가능하다.
# Timer
요청 간의 지연 시간을 나타낸다.
사용자가 홈페이지에 접속하여 다음 버튼을 누르기까지 10초의 Think time이 있다고 가정하면
A샘플러 -> B샘플러로의 요청 사이에 Timer를 지정하여 10초의 지연을 줄 수도 있다.
# Config Elements
테스트에서 공통으로 사용하는 값들에 대한 설정을 뺄 수 있다.
Domain name, IP, Port, File Path 등의 공통 변수를 User Defined Variables에 추가하고,
HTTP Header manager 에 ${Domain} ${Port} 등 변수로써 처리하면
해당 Config element가 작동하는 범위 안에서 모든 요청은 해당 도메인/ 포트번호로 전송된다.
# Pre-Processors & Post-Processors:
샘플러의 요청 이전에 처리할 작업이나 요청 이후 처리할 작업이 있을 경우 이 컴포넌트를 이용하면 된다.
Pre-Processor (샘플러 이전 처리)
--- 요청 전에 해줘야하는 작업
Post-Processor (샘플러 이후 처리)
--- 응답으로 돌아온 값이 다음 요청의 Input으로 들어갈 경우
✅ Apache Jmeter 설치하기
아파치 제이미터의 설치는 아주 간단하다.
1. 아래 링크에 접속한다.
https://jmeter.apache.org/download_jmeter.cgi
Apache JMeter - Download Apache JMeter
Download Apache JMeter We recommend you use a mirror to download our release builds, but you must verify the integrity of the downloaded files using signatures downloaded from our main distribution directories. Recent releases (48 hours) may not yet be ava
jmeter.apache.org
2. 바이너리 파일로 다운받는다.
Binaries > apache-jmeter-5.6.3.tgz

사용하고 싶은 디렉터리에 위치시키고, 더블클릭하여 압축해제한다.

bin 디렉터리 내부에 여러 실행파일들이 존재하는데 ,,,
Mac에선 jmeter.sh로 실행하고
Windows에선 jemter.bat으로 실행한다.

다음 글
간단하게 Jmeter의 사용법을 익히는 정도로 테스트 시나리오를 만들고 돌려보는 내용이다.
'Infra > Middleware' 카테고리의 다른 글
| GC Tuning (0) | 2025.08.11 |
|---|---|
| 자바 성능 튜닝 (0) | 2025.08.10 |
| [Apache] Proxy 설정 (0) | 2025.05.20 |
| 프록시의 개념과 종류 (Foward Proxy, Reverse Proxy) (0) | 2025.05.19 |
| [APM][제니퍼5] Jennifer 5의 아키텍처를 알아보자. (0) | 2025.05.10 |