티스토리 뷰
JMeter는 다른 아파치 재단의 프로젝트들과 같이 공개소프트웨어이며 100% 자바기반의 성능 테스트 도구이다.
설치하는 것도 아주 간단해서
http://jmeter.apache.org/ 에서 설치파일을 다운로드하고 설치할 경로에 압축을 푸는 것만으로 설치가 끝난다.
프로그램 실행은 "bin/jmeter.bat" 파일을 더블클릭하면 된다.
그림1. Apache JMeter 메인화면
확장 |
|
널리 알려진 JMeter Plugins 을 사용하면 JMeter 에서 제공하지 않고 있는 다양한 기능들을 사용할 수 있다.
플러그인 설치는 http://code.google.com/p/jmeter-plugins/downloads/list 에서 최신 버전의 패키지를 다운로드하고
압축파일에 포함된 JMeterPlugins.jar 를 JMeter 설치 위치의 ${JMETER_HOME}/lib/ext 에 복사한다.
변경 전
#jmeter.save.saveservice.thread_counts=false |
변경 후
#jmeter.save.saveservice.thread_counts=true |
Ι■ 이제 JMeter 을 다시 시작한다. JMeter Plugins 에서 제공하는 기능들은 이름이 모두 jp@gc 로 시작되기 때문에 쉽게 구분이 가능하다.
그림2. JMeter Plugins
Ι■ JMeter 에서 파일로 저장하기 기능을 사용할 계획이라면 각 플러그인 모듈에서 Configure 버튼을 클릭하고
Save Active Thread Counts 항목을 체크하고 저장한다.
그림3. JMeter Plugins 기능들의 Configure 화면
set HEAP=-Xms512m -Xmx1024m set NEW=-XX:NewSize=256m -XX:MaxNewSize=256m |
부하테스트 |
|
Ι■ 부하테스트는 JMeter 에서 제공하는 기본 ThreadGroup 가 아닌
JMeter Plugins 에서 제공하는 Stepping Thread Group (이하 Thread Group) 을 사용하여 단계적으로 부하를 더 많이 줄수 있도록 하였다.
여기에서 Thread 는 사용자를 의미한다.
새로운 Test Plan 을 생성하고 아래 그림과 같이 Add > Threads(User) >jp@gc - Stepping Thread Group 을 추가한다.
그림4. Stepping Thread Group 추가
Ι■ Stepping Thread Group 설정에서 값을 조정하여 어떻게 부하를 줄 것인가를 설정한다.
그래프를 보면 이해가 더 쉽다.
문서에서는 5초 간격으로 5명 사용자를 생성하며 최대 100 명 까지 생성한다.
이 상태를 500 초동안 유지하다가 15초 간격으로 5 명씩 사용자를 제거하도록 하였다.
그림5. Stepping Thread Group 설정
로그인(여러 사용자로 로그인 처리를 수행하기 위하여 CSV 파일을 사용한다.) 특정 페이지 조회 |
그림6. HTTP Request 추가
Ι■ 이제 어떻게 해당 URL 을 호출할 것인가를 지정한다.
여기에서는 POST 방식으로 username, password 파라메터 값을 전달하도록 하였다.
그림7. HTTP Request 설정
Ι■ 그림7에서 값을 표시할 때 ${username} 형식으로 설정한 것은 CSV 파일에서 데이터를 읽어 사용하기위서이다.
CSV 파일 데이터는 그림8과 같이 CSV Data Set Config 를 추가하여 정의할 수 있다.
※ CSV Data Set Config 는 로그인 HTTP Request 와 동일한 레벨에 위치하여야 한다.
그림8. CSV Data Set Config 추가
Ι■ 여기에서는 CSV 파일은 엑셀데이터를 CSV 파일로 변환하고 헤더데이터만을 제거하여 사용하였다.
설정은 아주 간단하며 읽어들일 파일이름과 내부적으로 사용할 데이터 이름을 지정하면 된다.
이름을 앞의 HTTP Request 설정에서 파라메터 값으로 설정하면 된다.
그림9. CSV Data Set Config 설정
Ι■ 이제 Thread Group 에 HTTP Cookie Manager 을 추가하여 로그인 이후 일정동안 세션이 유지될 수 있도한다.
HTTP Request 는 순차적으로 발생되기 때문에 로그인 이후에 인증이 필요한 페이지 요청을 설정하여 사용하는 경우에 필수 적이다.
그림10. HTTP Cookie Manager 추가
Ι■ 이제 마지막으로 부하테스트 결과를 다양한 그래프로 볼 수 있도록 Thread Group 에 필요한 Listener 를 추가한다.
추가는 좌측 트리에서 Thread Group 를 선택하고 그림11 과 같이 추가하면 된다.
그림11. 결과 리포팅을 위한 Listener 추가
Ι■ 부하 테스트 결과는 문서에서는 그림12 과 같이 다양한 결과 뷰를 추가하였다.
기본적으로 차트 결과는 기본으로 제공되는 Graph Results 는 보기가 어렵기 때문에
JMeter Plugins 에서 제공하는 다양한 그래프를 사용하는 것이 더 도움이 될 것 같다.
그림12. 결과 리포팅 Listener
Ι■ 부하테스트는 Run 메뉴를 사용하거나 아래와 같이 실행 아이콘을 클릭하면 된다.
그림13. 테스트 실행 메뉴
부하테스트 결과 |
|
Performance Engineering은 시스템의 목표 성능 (응답 시간과 동시 접속자수)을 정의 하고, 이를 달성하기 위해서, 시스템의 구조를 반복적으로 개선하는 작업을 이야기 한다.
Ι■ 1. View Results Tree
테스트된 결과들에 대한 상세 정보를 볼 수 있다.
여기에서는 실제 테스트 계획을 수행하기 이전에 등록된 HTTP Request 가 올바르게 동작하는가를 확인하는데 유용하게 사용되었다.
Ι■ 3. jp@gc - Response Times Over Time
Ι■ 4. jp@gc - Response Times vs Threads
사용자 변화에 따른 응답 속도Ι■ 5. jp@gc - Transaction Throughput vs Threads
사용자 변화에 따른 초당 처리 건수
jp@gc - Active Threads Over Time
jp@gc - Response Times Over Time
jp@gc - Transactions per Second
리모트 |
|
부하 테스트를 실행할 모든 클라인언트 장비들의 방화벽을 OFF 한다.
부하 테스트를 실행할 모든 클라인언트 장비들은 동일한 서브넷이여야 한다.
부하 테스트를 실행할 모든 클라인언트 장비에서 부하 테스트 대상 서버에 접근이 가능하여야 한다.
부하 테스트를 실행할 모든 클라인언트 장비에 동일 JMeter 버전이 실행되어야 한다.
'dev' 카테고리의 다른 글
[dev] git 다른 repository 커밋 포인트 가져오기 (1) | 2021.03.23 |
---|---|
vi/vim 단축키 정리 (0) | 2017.11.24 |
성능 엔지니어링 대한 접근 방법 (0) | 2017.11.07 |
톰캣 윈도우 서비스 등록 / 설정 변경 (0) | 2017.11.02 |
sonatype 넥서스 설치 방법 (0) | 2017.11.02 |