본문 바로가기

Dev.../웹서비스

[펌] JMeter 사용법에 대하여 간단히..


JMeter는 MS의 Web Application Stress Tool이나 WebLoad 처럼

일정시간동안 일정유저(세션)이 처리 될수 있는 WAS의 성능을 파악하여
Program 혹은 WAS를 튜닝할수 있도록 해줌으로써
예전의 프로젝트 성능테스트시
하나,둘,셋~!이 사라지도록 일조했다는 제 개인적인 생각....-_-;;;;

간단하나마 예제를 통하여 설명하여 보도록 하겠습니다...스타뚜~!!

JMeter는 jdk1.3이상이 설치 되어 있는 운영체제에서 실행 됩니다.(JDK필수)
http://jakarta.apache.org/jmeter/index.html에서 다운로드를 받을수 있고
매뉴얼을 원하신다면
http://jakarta.apache.org/jmeter/usermanual/index.html 를 참고 하시기 바랍니다.
여기서는  window 운영체제를 기준으로 설명하였으며
jdk 설치에 대한 언급은 피하도록 하겠습니다.

binary파일을 기준으로 설명 하겠습니다.
위 jakarta사이트에서 jakarta-jmeter-2.0.2.zip 파일을 C:\ 아래에 다운 받은후
압축을 풉니다.

 


다음을 전제 조건으로 테스트 예제를 만들어 보겠습니다.
1. 로그인 페이지 : http://id.naver.com/nidlogin.login?mode=form
 로그인시 필요한 파라미터: LoginId, LoginPw
2. 테스트 대상 조회페이지 : http://blog.naver.com/index.php?type=30
 조회시   필요한 파라미터 및 value list
 SearchId = 1,2,3,4,5,6,7
 SearchDt = 20041122
 SearchYN = Y,N,Y,N,Y,N,Y

첫째로 플랜 작성을 합니다.
다음 그림과 같이 플랜 작성을 합니다.
1. Thread Group : 필수.
   Number of Threads : 4
   Ramp-Up Period : 1
   Loop Count : 3
   Forever   : Stop 이벤트가 오기 전까지 무한 실행(uncheck)
   Scheduler : 시작시간, 종료시간 지정하여 사용 가능(uncheck)
   ※ 설명은 10번.
2. HTTP Request Defaults : 이거 없이 바로 HTTP Request를 사용해도 좋으나 말그대로 디폴트값 설정후
   다른 Request에서 가져다 쓸수 있다는 장점이 있음.
   Protocol : http
   ServerName or IP:www.javapattern.info
   path :
   Port Number : 80
3. Once Only Controller : 이 Controller 아래에 추가된 Request들에 대해선
   쓰레드 실행시 한번만 수행 됨
4. HTTP Request1 : 로그인을 위한 Request
   실제 이름은 HTTP Request이나 아래 Request와 구분하기 위해 1,2를 붙힘.
   path : /login.jsp
   아래 Add Button Click
   Name - LoginId, Value - xxx
   Name - LoginPw, Value - xxx
   ※ Counter나 User Parameters 를 사용하여 여러 유저를 등록시킬수 있음.
5. HTTP COOkie Manager : 4번에서 생성된 로그인세션정보를 유지 시키기 위함.
6. HTTP Request2 : 조회를 위한 Request
   Path : /search.jsp
   아래 Add Button Click
   Name - SearchID, Value - ${SId}
   Name - SearchDt, Value - 20041122
   Name - SearchYN, Value - ${SYN}
7. Counter : 파라미터 설정시 일정한 규칙으로 변화 되는 숫자의 파라미터 지정시 사용
   Start : 1
   Increment : 1
   Maximum   : 1
   Reference Name : SId
8. User Parameters : 파라미터 설정시 규칙성이 없는, String 의 파라미터 지정시 사용
   Add Variable click
   Add User click
   Name : SYN
   User_1 : Y
   User_2 : N
   ...
   User_7 : Y
9. 결과 모니터링을 위한 Listener 추가
   제가 자주 쓰는 리스너에 대해서만 표시 하겠습니다.
   1). Assertion Results
   2). View Results in Table
   3). View Results Tree
   4). Aggregate Report
   5). Graph Results
10. 전체적인 모양을 보고 Thread Group 의 지정값에 대해 설명하려고
   Number of Threads : 4
   Ramp-Up Period : 1
   Loop Count : 3
   위와 같이 설정이 되어 있다면
   1초동안 4개의 쓰레드가 3번 반복을 하게 됩니다.
   여기서는 Loop Count 가 100이라 할지라도 Once Only Controller에 의해서
   HTTP Request1는 단 1회만 실행하게 됩니다.
   HTTP Request1 : 1회(세션4개 생성)
   HTTP Request2 : 3회(세션4개가 3회수행, 총 12회 수행)


이상 간단하나마 예제설명을 해보았습니당..
제가 알고있는범위내의 설명이므로 더 좋은방법, 더 나은 스케쥴작성이 가능할텐데
무지와 시간의 한계로 인해 여기까지밖에....
좀더 나은 정보를 원하신다면 매뉴얼을 보시는것이...^^*
예제 파일을 실제 존재하는 id/pw를 이용해 세션생성후
게시판 글의 hit수가 올라가도록 해보고싶었는데..
쬐끔 실패....-_-;;;;;