Hayden's Archive

[JMeter] Apache JMeter 설치 및 트래픽 부하 테스트 본문

Study/DevOps

[JMeter] Apache JMeter 설치 및 트래픽 부하 테스트

_hayden 2020. 12. 15. 09:28

참고 : www.youtube.com/watch?v=1AyxqIePusA

 

엄청나게 많은 트래픽을 웹 서버에게 보내서 웹 서버가 얼마나 트래픽 스트레스로부터 잘 견디는지 테스트해보고자 한다.

이를 위해 아파치에서 제공하는 제이미터를 사용해보겠다.

제이미터는 자바로 구성되어 있으므로 기본적으로 컴퓨터에 자바가 설치되어 있어야 실행이 가능하다.

 

downloads.apache.org/jmeter/binaries/

 

Index of /jmeter/binaries

 

downloads.apache.org

 

공식 홈페이지에 들어가서 압축 파일을 다운 받는다.

나는 apache-jmeter-5.4.tgz 을 다운받았다.

 

적당한 위치에 두고 압축을 풀고 bin 폴더에서 jmeter를 실행시킨다.

$ ./jmeter

 

 

Failed to load module "canberra-gtk-module" 라고 뜨는 걸로 봐서 해당되는 항목을 설치하자.

참고 : packages.ubuntu.com/xenial/libcanberra-gtk-module

 

아래의 명령어로 설치를 진행한다.

$ sudo apt install libcanberra-gtk-module libcanberra-gtk3-module

 

다시 ./jmeter로 실행하면 모듈 로드 실패 메세지가 뜨지 않는다.

아래는 제이미터를 실행했을 때 GUI 화면이다.

 

Test Plan을 오른쪽 마우스로 클릭 - Add - Threads (Users) - Thread Group을 클릭하면 아래와 같은 화면을 확인할 수 있다.

 

Number of Threads (users) 
- 한번에 생성할 스레드의 수. 즉 동시에 접속하는 유저의 수를 말함. 당연히 값이 클수록 서버에 대한 부하가 커지게 된다.

Ramp-up period (seconds)
- 전체 스레드가 전부 실행되는 데까지 걸리는 시간

Loop Count
- 반복하고자 하는 횟수. 만약 Number of Threads가 10이고 Loop Count가 10이면, 열 사람 한명한명이 각각 10번씩 접속하는 것이다. Loop Count 옆에 있는 Infinite를 체크하면 계속 접속하겠다는 뜻.

 

일단 각각 1, 1, 1로 입력하고 넘어가보겠다.

(1명의 유저가 1번 접속하는데 이를 실행하는 데 1초가 걸림)

 

 

Thread Group을 오른쪽 마우스 클릭 - Add - Sampler - Http Request 를 클릭해보자. (웹으로 접속할 경우 해당되고, 다른 프로토콜로 접속할 경우에는 해당되는 것을 클릭하면 된다.)

Thread Group 안에서 요청을 여러개 만들 수 있으니 참고!

 

Protocol[http] 
- 디폴트값은 http이다. 만약 https로 접속할 경우 https를 적어준다.

Server Name or IP
- 서버 아이피 주소를 적어준다.

Port Number
- 포트 번호를 입력한다.

Path
- 해당되는 웹 페이지의 어느 주소를 접근할 것인가. index.jsp와 같이 입력한다.

헤드값을 세팅하고 싶으면 최하단의 목록을 채워주면 된다.

 

 

초록색 재생버튼을 누르면 실행이 되는데, 위와 같이 알림이 뜬다. 테스트 시나리오를 저장해뒀다가 다음에도 쓸지 물어보는데 Yes를 누르고 적당한 곳에 저장한다.

 

이제 결과를 확인하자.

스레드 그룹에 대한 통계를 보고 싶으면 Thread Group을 오른쪽 마우스 클릭하고, 특정 요청에 대한 통계를 보고 싶으면 해당되는 Http Request를 오른쪽 마우스를 클릭한다. Test Plan에 있는 모든 그룹에 대한 통계를 보고 싶으면  Test Plan을 오른쪽 클릭한다.

여기서는 Http Request를 오른쪽 마우스로 클릭해보겠다. 그리고 나서 Add - Listener - View Results Tree를 클릭한다.

다시 Thread Group에서 수치를 설정해주고(Number of Threads (users) : 1, Ramp-up period (seconds) : 1, Loop Count : 3으로 하였음)

View Results Tree로 돌아와서 실행하면 아래와 같이 결과를 확인할 수 있다.

 

Performance 테스트와 관련한 용어가 잘 설명되어 있는 블로그 주소를 아래에 첨부한다.

12bme.tistory.com/272

 

[테스트] JMeter와 성능 테스트

1.1 JMeter란 Apache JMeter는 웹 애플리케이션처럼 클라이언트-서버 구조로 된 소프트웨어의 성능 테스트를 위해서 만들어진 100% 순수 자바 프로그램입니다. 스테파노 마조끼가 개발했으며, 이는 현

12bme.tistory.com

 

 

테스트 결과를 확인할 때 View Results Tree만으로는 부족할 수 있다.

리스너에는 View Results Tree 뿐만 아니라 Summary Report와 Graph Results도 있다.

 

제이미터에 관하여 보다 더 많은 내용을 정리한 링크도 첨부한다.

luxtar.tistory.com/8

 

Apache Jmeter 활용 해보기

웹 패킷 분석과 서버 성능 테스트를 할 일이 생겼다. 클라이언트 시뮬레이터가 필요해서 알아보다 아파치에서 제공하는 JMeter 를 알게되었다. JMeter 를 활용하면 다량의 가상 클라이언트 세

luxtar.tistory.com