티스토리 뷰

etc

JMeter 설치 및 사용방법

Grand_J 2022. 3. 29. 16:47
반응형

혹은

 해당 버튼으로 시작

JMeter 설치 및 사용방법

1. JMter 설치

1-1. 다운로드 URL : 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

윈도우 환경 경우 zip 파일로 다운로드 후 적당한 곳에 압축을 해제한다.

2-1 JMeter 실행

- .\apache-jmeter-5.4.3_\bin\jmeter.bat

jmeter.bat 배치파일을 실행한다.

1-3 플러그인 jpgc-graphs-basic-2.0 설치 (필요시)

- Jmeter 실행 후 부하테스트 시 부하유입량부터 TPS처리 반응까지 그래프로 확인할 수 있다.

1-3-1 다운로드 URL : https://blog.kakaocdn.net/dn/oICUA/btrxILLdshQ/sWfu2RA9wPOtAKx5k6CnWk/jpgc-graphs-basic-2.0.zip?attach=1&knm=tfile.zip (다운로드 실패 시 브라우져에서 다운로드)

1-3-2압축해제 후, \jpgc-graphs-basic-2.0\lib\ 안에 파일

1-3-3 해당 파일을 Jmeter 안에 있는 lib 폴더안에 붙여넣기를 한다.

1-4. - 정상적 실행 화면

1-5 인코딩 UTF-8 변경 (한글 깨질 경우)

1-5.1 ./bin/jmeter.properties 우클릭 > Edit

1-5.2 sampleresult.default.encoding=UTF-8 부분을 추가해준다. (주석 처리되어 있는 경우도 있음)

 

2. JMeter 사용법

2-1 Test Plan 우클릭 > Add > Threads (Users) > Thread Group

2-2 옵션 변경

Number of Threads (user) : thread 개수 (요청을 보내는 user의 수)

Ramp-up period (seconds) : 요청을 보내는 주기 즉 전체 thread가 전부 실행되는 시간을 의미. 예를 들어, Thread의 개수가 5개이고 Ramp-up Period 15초 일 경우, 첫 번째 Thread가 수행된 후 다음 Thread가 수행될 때가지 3초를 대기한다는 의미.

Loop Count (infinite) : 반복횟수 (infinite 체크 시 무한반복) 

위 세팅 설명 : 초당 100명의 유저가 10번 호출. 1000Test Plan 수행

2-3 JMeter Sampler (HTTP) 생성  Thread Group 우클릭 > Add > Sampler > HTTP Request

- 위 내용은 https://host/shop/api/ 해당 api 대한 세팅 값이다.- 파란부분은 원하는 파라미터 값을 직접 기입할 수 있다.

 

2-4 Listener 추가  Thread Group 우클릭 > Add > Listener > 원하는 Listener 선택

- View Results Tree 요청에 대한 상태 및 req, res 데이터 조회 가능

- Summary Report 결과의 종합적인 내용 요약 조회

Label - 사용 request의 이름

Samples - requset 갯수

Average - Sample Time의 평균

Min - Sample Time의 최소

Max - Sample Time의 최대

Std. Dev. - Sample Time의 표준편차

Error % - 에러율

Throughput - 시간당 처리량(=쓰루풋)

Received KB/sec - 시간당(sec) 받은 데이터(KB)

Sent KB/sec - 시간당(sec) 보낸 데이터(KB)

Avg. Bytes - 평균 바이트

 

- jp@gc - Response Times Over Time  테스트 시간에 따른 응답 시간을 그래프로 보여줌

 

- jp@gc - Response Times Over Time  테스트 시간에 따른 응답 시간을 그래프로 보여줌

 

- jp@gc – Transactions per Second 초당 시스템의 처리량을 그래프로 보여줌

2-5. 시작 방법

- thread group 우클릭 > start

 

- 해당 버튼으로 시작

- 종료

- 리스너 내용 초기화

 

3. Elements 내용 설명

1. Thread Group

Thread Group은 모든 테스트 플랜 작성의 시작 지점으로 Thread Group 아래에 모든 컨트롤러와 샘플러가 위치한다. Thread Group에는 실행하는 스레드 수, 램프업 시간, 테스트 수행 시간을 지정한다. 하나의 테스트 플랜에는 여러 개의 Thread Group을 지정할 수 있다.

 

2. Samplers

샘플러는 JMeter가 대상 시스템에 요청해야 하는 정보를 설정한다. 예를 들어 HTTP 프로토콜을 이용해서 테스트한다면 "HTTP Request Sampler"를 추가하고 여기에 연결한 URL 정보와 파라미터 값을 설정한다. 각각의 샘플러는 해당 프로토콜에 맞는 속성값들을 정의하게 되어 있으며 테스트시 해당 프로토콜에 대한 이해 없이는 설정이 거의 불가능 하다.

 

3. Logical Controllers

Logical Controller JMeter가 언제 서버에 요청을 전달할지를 결정한다. 전체 부하 테스트 중에서 로그인 은 한번만 하는 경우, 혹은 HTTP URL 2개이고 해당 요청의 순서가 존재한다면 "HTTP Request Sampler" 2개 등록하고 Logical Controller 2개의 상관 관계를 정의할 수 있다.

 

4. Listener

JMeter를 통해 테스트하는 결과 정보 및 진행 상태 정보를 표시한다. 일반적으로 [Graph Result]를 이용해서 진행되는 추이를 그래픽 하게 확인한다. 또한 수집된 정보는 XML 혹은 CSV로 저장이 가능하다.

 

5. Timers

JMeter의 테스트 플랜에 샘플러를 등록하면 순차적으로 진행이 되지만 현실 세계에서 하나의 사용자가 요청을 순차적으로 매우 빠른 시간 내에 수행하는 것은 불가능하다. 이처럼 요청과 요청 사이에 특정한 시간 간격을 두려면 Timers를 이용해서 설정할 수 있다.

 

6. Assertion

JMeter HTTP 프로토콜을 이용해서 성능 테스트를 할 경우 요청 별 성공/실패 여부는 HTTP 응답 코드의 값을 이용해서 판단한다. HTTP 응답 코드가 200이면 성공을, 그 외에 다른 코드 값은 실패로 규약 되어 있다. JMeter에서도 이를 그대로 사용하며 200번 코드가 리턴 되면 테스트는 성공으로 인식한다.

 

하지만 업무적으로 200번 코드가 리턴 되더라도 실패로 판단해야 하는 경우도 많이 있다. 이 경우 Assertion를 이용해서 응답 정보에 특정한 메시지를 필터링해서 성공/실패 여부를 판단할 수 있다.

 

 

 

 

7. Configuration Elements

Configuration Elements는 샘플러와 밀접한 관련이 있다. 비록 직접적으로 요청을 수해하지는 않지만 샘플러의 요청 정보를 관리할 수 있다. 예를 들어 테스트 플랜이 복잡해서 HTTP Request Sampler 작성을 많이 해야 하는데, 서버 IP나 포트 등 공통적으로 많이 사용되는 부분이 있다면 Configuration Elements "HTTP Request Defaults"에 설정하면 된다. 그러면 해당 설정 정보가 관련된 HTTP Request에 모두 적용된다.

 

8. Pre-Processor Elements

샘플러를 실행하기 전에 수행해야 할 내용을 정의한다. 예를 들어 요청을 하기 전에 파라미터 값을 초기화하는 등의 작업에 사용한다.

 

9. Post-Processor Elements

샘플러를 실행한 후에 수행해야 할 내용을 정의한다.

 

위 항목들은 JMeter 실행시 우선순위가 존재하는데, 다음과 같다.

 

Configuration -> Pre-Processor -> Timer -> Sampler -> Post-Processor -> Assertions -> Listener

 

 

 

끗@#%@$@#$!$

반응형

'etc' 카테고리의 다른 글

[IntelliJ] 단축키 모음  (0) 2022.06.20
크롬 json data 조회 시 JSON Viewer  (0) 2022.03.30
web proxy  (0) 2022.01.17
TV 무료 시청  (0) 2021.11.17
피들러 포터블  (0) 2021.04.20