본문 바로가기

개발

[Apache] JMeter 사용기

 

나를 괴롭히는 BMT................ 제대로 한번 알아봅시다.

내가 알고 있는 성능테스트 툴은 Apache ab , nGrinder, Apache JMeter 

이번에는 JMeter 를 사용해보련다

 

 

1. 설치하기

- JMeter 홈페이지에 가서 JMeter 를 다운로드 받는다

- 링크 : http://jmeter.apache.org/download_jmeter.cgi

- 참고로 나는 apache-jmeter-5.2.1.zip 을 다운받아서 사용함.

 

2. 실행 - 셋팅하기

- jMeter 설치 디렉토리의 bin 디렉토리 내에 jmeter.bat을 실행하면 프로그램이 뜬다.

- 프로그램이 뜨면 셋팅 짜르르르르르 해야하는데...뭔가 옵션이 너무너무너무너무 많다.............이게 먼가요~~?

기본적으로 ThreadGroup(테스트가 일어나는 루트) 를 먼저 설정 후 각각 추가해줌.

 

3. 분석하기 (용어정리)

Active User

 : 실제 서버에 연결된 상태로 요청을 처리 중인 사용자

 

InActive User

 : 웹브라우저에 결과 화면이 출력된 상태에서 화면의 내용을 읽거나 정보를 입력하고 있는 사용자. 서버와의 세션(Session) 정보를 가지고 있지만 직접 접속하여 요청을 주고받는 상태가 아닌 사용자를 의미

 

Concurrent User(Active User + InActive User)

 : 보통 '동시 접속 사용자수' ,일반적으로 사용자 수의 많고 적음을 표현하는 값으로, 성능 테스트에서 가상 사용자 수를 결정하는 기준이 된다. 서비스 유형과 시간에 따라 그 비율이 달라지긴 하지만, 일반적으로 Active User와 InActive User 비율이 1:10 정도

 

Virtual User

 : 가상 사용자 수로, JMeter에서는 Thread 수로 표현하기도 함

 

Ramp-Up Period

 : Thread(Virtual User) 생성에 걸리는 시간을 의미. Ramp-Up Period를 이해하기 쉽도록 작성한 그래프입니다.

 

Throughput: 단위 시간당 대상 서버(웹서버, WAS, DB 등)에서 처리되는 요청의 수. JMeter에서는 시간 단위를 보통 TPS(Transaction Per Second)로 표현

 

Response Time/Load Time

 : 응답시간 또는 처리시간이라고 표현. 요청을 보낸 후 응답이 완료되어 사용자 화면에 출력될때까지의 시간을 나타냄. 시스템의 성능을 평가하는 지표로 주로 사용

 

Latency

 : 요청을 보낸 후 데이터를 받기 시작할 때까지 시간

 

Think Time

 : 하나의 요청에 응답을 수신하고 다음 요청을 보낼 때까지 시간을 의미. 테스트에서 실제 사용자의 사용패턴과 유사한 패턴을 구현하기 위해서는 이 Think Time을 적절히 적용해야 합니다.

 

Request Interval Time

 : 요청을 보낸 후 다음 요청을 보낼때까지 시간을 의미

 

4. 사용해보자

 4-1. Thread Group 생성하기 

- 이곳에서 Thread Properties 를 조정해가면서 성능 테스트를 할 수 있음

 

Thread Group  생성

 

4-2. HTTP Header Manager 셋팅  

- 헤더에 필요한 내용을 셋팅, 쿠키 정보 , User-Agent 등을 설정할 수 있다. 

HTTP Header Manager

 

4-3. HTTP Request 정보 입력

- 필요한 정보 기입 / 도메인 , URL , 필요한 파라미터 (GET/POST 등등)

HTTP Request

 

4-4. 결과 보기

- View Result Tree , Summary Report, Graph Result 등등으로 성능 측정에 대한 결과를 확인 할 수 있다.

View Results Tree

 

 

Summary Report

 

 

Graph Result

 

 

 

한줄평 > 

결과에 대해서 UI 적으로 깔끔하게 보여줘서 좋았고, 기본 적으로 제공하는 기능들의 사용법을 잘 익혀서 활용하면 좋을 것 같다!

 


맨 위로