jmeter란?
Apache 사에서 만들었으며 기능의 부하테스트 및 측정을 지원하는 Java Applicaion 오픈소스다.
JVM 설치되어 있는 환경에서 실행이 되며, 데스크톱 환경을 제공하기 때문에 직관적인 인터페이스로 쉽게 사용가능하다.
웹 서비스를 비롯하여, 파일, 서블릿 ,Perl 스크립트, Java 객체, 데이터베이스와 쿼리, FTP 서버 등 동적, 정적인 모든 자원을 테스트할 수 있다.
다양한 부하 조건에서 종합적인 성능을 분석가능하며, 성능 분석 결과를 도표로 제공하기도 한다.
설치 방법은 검색하면 많이 나오니(대부분 같은 방법) 생략.
사용방법
실행된 jmeter 는 다음과 같다.
테스트 계획(test plan) 은 최상위 디렉토리를 나타낸다. 우측 클릭하면 다음과 같이 나온다.
추가 -> 쓰레드들 -> 쓰레드그룹 선택한다
Thread Group 은 성능을 테스트할 가상의 사용자의 집합이라 보면 된다.
쓰레드들의 수 : 가상의 사용자 n명을 입력한다, 숫자가 높을수록 많은 스트레스를 받을 것이다.
Ramp-up 시간 : 해당 쓰레드가 실행될 시간을 정한다. 짧을 수록 굵직하고 길수록 가늘게 진행될 것이다.
루프 카운트 : 가상의 사용자들이 몇번 반복할 것인지 정한다. 무한 체크박스를 선택하면 정해진 시간동안 무제한으로 실행된다.
쓰레드 그룹에 우측 클릭하자
다양한 내역들이 존재하는데
추가 -> 표본 추출기 -> HTTP 요청을 선택한다
성능테스트 타겟 입력폼이 나온다.
프로토콜[http] : http 혹은 https 를 입력한다.
서버 이름 또는 IP : 성능테스트 진행할 주소(www.naver.com / www.google.com) 또는 ip를 입력한다 (로컬이라면 localhost)
포트번호: 로컬테스트라면 띄운 서버의 포트번호를 입력한다 (8080)
그 외에도 GET, POST 이나 파라미터까지 추가하여 설정할 수 있다.
이제 결과를 보기위한 지표를 추가해보자
쓰레드 그룹 -> 리스너에는 실행되는 결과에 대한 분석지표들이 존재한다. 쓰레드 그룹내에서 실행될 쓰레드에 대한 모든 결과를 볼 수 있다.
그룹이 아닌 가장 작은 쓰레드 단위로 결과 지표를 보고 싶다면
쓰레드에서 리스너를 추가해야한다.
테스트를 위해 쓰레드그룹에 쓰레드 여러개와 리스너들을 추가한다
테스트 요청 01 - 네이버를 세팅하고
테스트 요청 02 - 구글을 세팅하고 위의 녹색 실행버튼을 눌러보자. (작성자는 연속 2번 눌렀다).
가장 작은 리스너에는 해당 쓰레드의 결과가 나타난다. 요청으론 실행된 주소가 나타나고 응답 데이터는 호출된 결과를 반환한다
실행횟수가 적어 그러지는 도표가 없다.
쓰레드그룹의 리스너는 해당 쓰레드들의 모든 결과를 볼 수 있다.
더 많은 테스트를 위해 로컬로 애플리케이션을 띄우겠다. (네이버, 구글 등에 수천번 실행하면 ip 차단 당할 수 있다.)
실행하고 결과를 보자
작은 쓰레드에 대한 결과물이다. 이전과는 다른 지표를 보여주고 있다.
쓰레드 그룹에 대한 총합지표이다.
실행시간이 짧게 설정해서 쓰레드마다 점 1개밖에 안 찍혔다.
하지만 실제로 로컬에서는 단 1초?만에 h2 디비를 만번 이상 조회가 되었다.
간단히 사용방법에 대해 알아봤다.
누구나 손쉽게 부하테스트를 할 수 있으며, 다양한 기능들이 존재하니
천천히 알아보도록 하자.
https://jmeter.apache.org/usermanual/component_reference.html#Test_Plan
https://kamang-it.tistory.com/entry/JMeterlistener-활용해서-데이터-시각화-데이터-결과-리포트-보기
http://wiki.webnori.com/pages/viewpage.action?pageId=15171659