[JMeter] 부하테스트와 성능 측정 소프트웨어

[JMeter] 부하테스트와 성능 측정 소프트웨어

반응형

Apache JMeter란

부하테스트와 성능 측정을 위한 소프트웨어로 100% 순수 자바 어플리케이션 오픈소스이다.

정적 및 동적 자원, 웹 동적 애플리케이션 모두에서 성능을 테스트하는 데 사용할 수 있다.

서버, 서버 그룹, 네트워크 또는 개체에 대한 과부하를 시뮬레이션하여 강도를 테스트하거나 다양한 부하 유형에서 전체 성능을 분석하는 데 사용할 수 있다.

Apache JMeter 기능

다양한 애플리케이션/서버/프로토콜 유형 로드 및 성능 테스트 : 웹- HTTP, HTTPS (자바, NodeJS, PHP, ASP.NET 등) SOAP / REST 웹 서비스 FTP JDBC 를 통한 데이터베이스 LDAP JMS 를 통한 메시지 지향 미들웨어( MOM ) 메일 - SMTP(S) , POP3(S) 및 IMAP(S) 기본 명령 또는 셸 스크립트 TCP 자바 객체

빠른 테스트 계획 기록(브라우저 또는 기본 애프릴케이션에서), 빌드 및 디버깅 을 허용하는 완전한 기능을 갖춘 테스트 IDE

모든 Java 호환 OS(Linux, Window, Mac OSX, ...)에서 테스트를 로드하기 위한 CLI 모드(명령줄 모드(비 GUI)/헤드리스 모드)

동적 HTML 보고서를 제시할 수 있는 완전하고 준비된 보고서

가장 인기 있는 응답 형식, HTML , JSON , XML 또는 모든 텍스트 형식 에서 데이터를 추출하는 기능을 통한 손쉬운 상관 관계

완벽한 이식성과 100% 자바 순도

완전한 멀티스레딩 프레임워크는 많은 스레드에 의한 동시 샘플링과 별도의 스레드 그룹에 의한 다른 기능의 동시 샘플링을 허용

테스트 결과 캐싱 및 오프라인 분석/재생

확장성이 뛰어난 코어 : Pluggable Sampler는 무제한 테스트 기능을 허용 스크립트 가능한 샘플러(Groovy 및 BeanShell과 같은 JSR223 호환 언어) 플러그형 타이머를 사용하여 여러 로드 통계 선택 가능 데이터 분석 및 시각화 플러그인을 사용하면 개인화, 뛰어난 확장 가능 함수를 사용해 테스트에 동적 입력을 제공하거나 데이터 조작 제공 가능

Apache JMeter 설치

JMeter 설치를 위해서는 Java 8 이상의 환경이 필요하다.

만약 Java가 설치되어 있지 않거나, Java 8보다 아래의 버전이라면 Java 8 이상의 버전을 먼저 설치해준다.

그 다음 Apache JMeter 페이지에서 자신의 운영체제에 맞는 파일을 다운로드 한다.

MacOS에서는 아래와 같은 brew 명령어를 이용해 간단하게 설치가 가능하다.

brew install jmeter Or brew install jmeter —-with-plugins

파일을 다운로드 했다면 다운로드 경로에, brew 명령어를 사용해 설치했다면 /opt/homebrew/Cellar/ 경로에 JMeter가 설치되었을 것이다.

만약 Window 환경이라면 /bin/ApacheJMeter.jar로, MacOS 환경이라면 Terminal에서 jmeter 명령어 입력을 통해서 JMeter 소프트웨어를 실행시킬 수 있다.

JMeter는 Test Plan 아래에 여러 개의 Thread Goup(User)을 등록하고, Thread 하위에 여러가지 Sampler, Timer, Logic Controller를 이용해서 테스트 환경을 구성할 수 있다. Test Plan은 .jmx라는 파일로 저장할 수 있기 때문에 재사용이 용이하다.

그 외에도 Option>Plugins Manager를 이용하면 다양한 플러그인을 끌어와서 사용할 수 있다.

Top 10 Plugin 참고

Installed Plugins은 설치한 Plugins, Available Plugins는 설치 가능한 Plugins이 나타난다.

이외에도 직접 Plugins 파일을 다운 받아 ~/lib 환경에 넣어주는 방법이 있다.

JMeter를 이용한 부하/성능 테스트를 통한 JMeter 사용 예제는 다른 게시물로 정리해보도록 한다.

반응형

from http://doqtqu.tistory.com/269 by ccl(A) rewrite - 2021-08-02 13:00:41