IT_Programming/Dev Tools

[펌] JMeter 사용법 - 부하 테스트

JJun ™ 2010. 12. 28. 11:14

-------------------------------------------------------------------------------------------------

출처: http://burningjade.tistory.com/entry/JMeter-%EC%82%AC%EC%9A%A9%EB%B2%95

-------------------------------------------------------------------------------------------------

  JMeter사용법.doc

 

JMeter

JMeter Client/Server 소프트웨어의 로드 테스트를 위해 만들어진 100% 자바 데스크톱 어플리케이션이다. JMeter는 서버나 네트워크 흑은 객체에 과도한 부하를 주어 시뮬레이션 테스트도 가능하며 다른 부하에 대해서도 전반적인 퍼포먼스를 분석할 수 있다.

 

 

JMeter 설치

http://jakarta.apache.org/site/downloads/downloads_jmeter.cgi 에서 최신 버전의 JMeter

다운로드 한다. (예는 jakarta-jmeter-2.3.1 버전이다.) 다운받은 Zip파일의 압축을 풀어보면

다음과 같이 구성되어있다.


 

 

 


 

 

JMeter 실행

/bin 디렉토리에 jmeter.bat 파일을 실행하면 JMeter의 화면을 볼수 있다. 

 

 

 

 

 

JMeter 시작

 

TestPlan 선택한다.


 

Test Plan JMeter가 구동할 때 실행하는 단계들의 묶음이다.

완전한 Test Plan은 하나 이상의 Thread Group, Logic controller, sample generating controller, listener, timer, assertion, configuration 요소들로 구성된다. 아래 부분의 첫 번째 체크박스 ‘Run Thread Groups consecutively ….’ Thread를 동시에 수행 시킬 것인지를 선택하게 한다. 체크하지 않으면 동시에 쓰레드가 수행된다. 두 번째 체크박스 ‘’Functional test Mode..’는 각 요청에 대한 서버의

응답을 파일로 기록할 것인지 아닌지를 선택할 수 있다.

 

 

Test Plan>>Add>>Thread  Group 선택한다.

 

Thread Group Test Plan의 시작점이다. Test Plan의 모든 요소들은 반드시 Thread Group

포함 되어야 한다. Thread Group JMeter가 테스트를 실행시킬 Thread의 수를 제어할 수 있다.

 

- number of threads (users) : 테스트를 실행시킬 Thread (사용자수)

- Ramp-Up Period (in seconds) : Thread가 시작되고 다음 Thread가 시작될 때까지의

                                                     대기시간1초로 설정하면 모든 쓰레드가 1초 안에 시작하게

                                                     된다예를 들어 쓰레드 수가 50이고 Ramp-Up Period

                                                     50 Seconds로 주었다면 각 쓰레드는 1초당 한번씩 발생된다.

 

- Loop Count : 테스트 실행 횟수 (Forever를 선택하면 무한 반복 실행)

 

 

Thread Group >> Add >> Sampler >> Http Request 선택한다. 

 

 

Sampler JMeter가 서버에 request를 보내도록 한다.

Http Request를 테스트 하기 위해 대상이 되는 서버의 ip, port, protocol, path, parameter 등을

설정한다.

 

 

기본적으로 설정 해야 할 부분은 아래와 같다.

 

- Server Name or Ip : 서버의 ip

- Port Number : 포트번호

- Path : 테스트 대상이 되는 path

- Send Parameters With the request : Request에 필요한 파라미터

 

Thread Group >> Add >> Listener >> View Result Tree 선택한다.

 

Listener는 테스트 한 결과를 보여준다.

 

 

 

메뉴에서 Run >> Start 선택

테스트가 실행되고 Listener에 테스트 결과가 나타난다.

Group의 설정에서 Thread 5번으로 설정해 주었으므로 request 5번 전송된다.

 

Thread Listener에서 Response data를 클릭하면 응답 데이터를 Text, HTML, XML 등의 다양한

포맷으로 확인 할 수 있다.

 

 

 

 

 

 

WebService(SOAP) Request

 

WebService request를 테스트 하기 위해선 다음의 파일이 추가로 필요하다.

이들 파일을 lib/ext에 넣는다.

 

- mail.jar

- activation.jar

 

 

 


Thread Group >> Add >> Sampler >> WebService(Soap) Request
선택한다.

 


1. WSDL URL : WSDL 파일이 위치한 url을 입력한다.

(http://localhost:8080/services/AccountReceivableTransport?wsdl)

WSDL URL을 입력하고 우측의 [Load WSDL]을 클릭하면, 바로 아래의 Web Methods에 등록된

서비스 메소드가 보이게 된다.

 

2. 테스트할 메소드를 선택하고 우측의 [Configure] 버튼을 클릭하면 Protocol에서 Path정보까지

    자동으로 채워진다.

 

3. Soap/XML-RPC Data에 필요한 파라미터 및 request정보를 입력한다.

EX)

<?xml version='1.0' encoding='utf-8'?>

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">  

             <soapenv:Header/> 

             <soapenv:Body>

                          <getAccount>    

                                        <roomNo>4678</roomNo>

                                        <inhsGestName>투숙자</inhsGestName>

                          </getAccount> 

             </soapenv:Body>

</soapenv:Envelope>

 

4. 하단의 Read SOAP Response를 체크하여 Listener에서 응답 받은 데이터를 확인할 수 있도록

    한다.

 

 

Thread Group >> Add >> Listener >> View Results Tree View Results in Table 선택한다메뉴의 Run >> Start 선택한다.

 

View Results Tree View Results in Table에서 테스트 결과를 확인할 수 있다.

 

1. View Results Tree

 

 

 

2. View Results in Table 

 

 


3. Graph Result Listener
를 사용하여 다음과 같은 결과를 얻을 수 있다.

 

- Data : plot the actual data values

- Average : plot the Average

- Median : plot the Median (midway value)

 

- Deviation : 이 값은 각각의 응답시간과 평균 응답시간과의 차이의 합.

                           얼마나 요청에 대한 응답시간이 일정한가 또는 얼마나 안정적인가를 보기 위한 값.

 

- Throughput : 서버가 처리할 수 있는 최대량은 그래프를 볼 때 녹색의 선이 증가를 하다가 더 이상

                        증가하지 못하고 떨어지는 시점의 직전값이다. 즉 이 테스트에서 10개의 쓰레드로

                                50번의 루프를 돌렸으나 사실 서버가 처리할 수 있는 양은 그것보다 좀더 높다는 것

                        을 단적으로 보여주고 있다.

 

 

참조

http://jakarta.apache.org/jmeter/usermanual/index.html

http://jakarta.apache.org/jmeter/usermanual/component_reference.html


 

JMeter사용법.doc
1.75MB