일단 Jmeter란?
Apache JMeter™ 애플리케이션은 오픈 소스 소프트웨어로, 기능적 동작을 로드 테스트하고 성능을 측정하도록 설계된 100% 순수 Java 애플리케이션입니다. 원래는 웹 애플리케이션을 테스트하기 위해 설계되었지만 그 이후로 다른 테스트 기능으로 확장되었습니다.
-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
일단 Jmeter 설치부터하면
-Window-
https://jmeter.apache.org/download_jmeter.cgi#binaries
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
해당 파일에 들어가서 zip파일 받고 bin폴더 안에서 Jmeter를 실행시켜주면 된다.
Java 설치는 필수!
-Mac OS-
맥은 윈도우 처럼 파일 받아서 구동이 가능하지만, 터미널을 통해 간단히 설치가 가능하다.(단 homebrew 설치는 필수!)
Homebrew
The Missing Package Manager for macOS (or Linux).
brew.sh
homebrew 설치 안되어 있으면 해당 공식 사이트가서 순서대로 터미널에서 명령어를 치면 된다.
-터미널을 통해 Jmeter 설치-
brew install jmeter
해당 명령어만 치면 설치가 가능하다.
그리고 jmeter가 있는 파일을 찾아 실행시키면된다.
이게 직접
open /usr/local/bin/jmeter
이런식으로 찾아서 실행시키는 경우가 있는데
몇몇분들은
jmeter
이것만 치면 실행이 가능할것으로 보인다. (필자는 해당 명령어만 치면 실행이 가능하였다.)

Jmeter 메인 화면

Test Plan -> Add -> Thread (Users) -> Thread Group 순서로 그룹을 만든다. (포스트맨 기준으로 컬랙션에 해당한다.)

다음은 HTTP 요청할 샘플러들 만들어야 한다.
Thread Group -> Add -> Sampler -> HTTP Request

basic 기준을 보면 프로토콜, 서버이름 or ip, 포트넘버 ,path, 엔코딩까지 있다.
HTTP Request 구성
- Server Name or IP: 요청할 서버의 도메인 또는 IP를 입력 (예: www.example.com, 로컬로 할경우 localhost 기입)
- Port Number: 포트 번호를 설정 (HTTP는 80, HTTPS는 443)
- HTTP Request > Path: 요청 경로를 입력 (예: /api/data)
- Method: GET, POST 등 요청 방식을 선택
- 필요하다면 Parameters 탭에서 요청에 추가할 매개변수를 설정이 가능하다.
- Content encoding은 내용을 적을때 각 사용 언어가 깨지지 않게 해준다(한국어는 UTF-8)

그리고 Thread Group 설정에 가서
사용자의 수 (Thread), Ramp-Up Period (스레드가 시작되는 간격), 그리고 Loop Count (테스트 반복 횟수)를 설정할 수 있습니다.
Thread Group은 사용자의 동작을 시뮬레이션하는 핵심 요소이다. 이를 통해 테스트에 참여하는 사용자 수, 요청이 이루어지는 빈도, 실행 시간 등을 설정할 수 있다.
Thread Group 설정
Thread Group의 속성은 JMeter 테스트의 부하(트래픽)를 설정하는 중요한 부분이다.
(1) Number of Threads (Users)
• 설명: 요청을 보내는 가상의 사용자 수를 정의
• 사용 예: 100명의 사용자가 동시 접속하는 상황을 시뮬레이션하려면 Number of Threads를 100으로 설정합니다.
(2) Ramp-Up Period (in seconds)
• 설명: 모든 스레드를 실행하는 데 걸리는 시간을 설정합니다. 즉, 지정된 사용자 수가 모두 실행되기까지의 시간을 초 단위로 설정
• 사용 예: Number of Threads가 100이고 Ramp-Up Period가 10이라면, JMeter는 10초 동안 100명의 사용자를 실행. 즉, 1초에 10명의 사용자가 생성.
(3) Loop Count
• 설명: 각 사용자(Thread)가 수행할 요청 횟수를 설정합.
• Forever 옵션을 체크하면 무한히 반복할 수 있다.
• 사용 예: Loop Count를 10으로 설정하면 각 스레드가 10번씩 HTTP 요청을 실행한다.
(4) Scheduler (스케줄러 활성화)
• 설명: 일정한 시간 동안 테스트를 실행하고 싶다면, 이 옵션을 활성화하여 아래에서 테스트 시작 시간, 종료 시간, 지속 시간 등을 설정할 수 있다.
• Duration: 테스트 실행 시간을 설정 (초 단위).
• Startup Delay: 테스트 시작 전 지연 시간을 설정.
• 사용 예: 테스트를 5분 동안만 실행하고 싶다면, Duration을 300초로 설정할 수 있다.
일단 테스트로는
Number of Threads: 100
Ramp-Up Period: 10
Loop Count: 2

이렇게 세팅하고 테스트 해볼려고 한다.

간단하게 조회 메서드로 테스트를 실행
- Jmeter 작동할때 테스트하고 싶은 서버를 미리 실행시키고 Jmeter를 실행시켜야 한다.

각각 알맞게 넣어준다.
만일 도메인으로 넣어줄려고 하면 https://www.example.com/blog이런식이면
Protocol: https
Servername or IP: www.example.com
Path: /blog
로 넣어주면 된다.
그리고 실행 시켰을때 결과를 봐야 하므로

HTTP Request -> Add -> Listener 들어가서
View Result Tree
Aggregate Graph
View Results in Table
을 추가해주면 된다. 만일 추가적으로 Listener가 필요하면 원하는데로 추가하면 된다.
해당 리스너는 어떤 기능을 하나?
View Results Tree
- 기능: 요청과 응답의 세부 정보를 시각적으로 확인할 수 있는 리스너
- 주요 사용법:
- HTTP 요청의 세부 정보: 요청을 보낸 URL, 요청 헤더, 요청 본문 등을 확인
- 응답 결과: 서버에서 반환된 응답 코드, 응답 시간, 응답 본문, 응답 헤더를 확인
- 디버깅: 요청이나 응답에서 문제가 발생했을 경우, 이를 확인하여 문제를 진단하는 데 유용
Aggregate Graph
- 기능: 테스트 실행 결과를 그래픽으로 시각화하여 성능 메트릭을 한눈에 파악할 수 있는 리스너
- 주요 사용법:
- 성능 요약: 평균 응답 시간, 최대 응답 시간, 최소 응답 시간, 요청 수, 에러 수 등을 그래프로 시각화
- 시간 경과에 따른 성능 추세: 요청이 처리되는 시간에 따라 성능의 변화를 시각적으로 보여준다
- 비교 분석: 여러 테스트 실행 간의 성능을 비교하기 쉽게 함
View Results in Table
- 기능: 요청과 응답의 결과를 표 형식으로 표시하는 리스너
- 주요 사용법:
- 요청 및 응답 요약: 각 요청에 대한 상태, 응답 코드, 응답 시간 등의 정보를 표 형태로 정리하여 보여준다.
- 다양한 필터링 및 정렬: 특정 조건에 따라 결과를 필터링하거나 정렬하여 필요한 정보를 쉽게 찾을 수 있다.
- 전체 결과 요약: 여러 요청의 결과를 한눈에 확인할 수 있어, 전체적인 테스트 성과를 분석하는 데 유용하다.

성공된걸 확인했고 표와 그래프를 보면


여기서 인증 권한을 주어야 한다면
HTTP Request -> Add -> Config Element -> HTTP Header Manager를 생성하면 된다.

만일 권한을 넣어야 하거나 그외 추가적으로 헤더에 넣을게 필요하면 HTTP Header Manager에서 값을 주입하면 된다.

만일 등록이나 수정할떄 RequestBody로 해야될 경우 Body Data에 가서 Request에 맞게 작성하면 된다.

환경변수가 필요할 경우
HTTP Request -> Add -> Config Element -> User Defined Variables 에서 설정이 가능하다.
'Jmeter' 카테고리의 다른 글
| 포트가 겹쳐 생긴 403에러에 관한 문제 (0) | 2024.10.29 |
|---|