Apache JMeter로 성능 테스트하기 - 설치

소프트웨어 마에스트로 14기 팀 프로젝트에서 나는 백엔드 파트를 담당하여 Spring Boot를 통한 WAS 개발을 하였다. JMeter를 통해 내가 만든 API의 성능 테스트를 하게 되었고, 이에 대한 과정과 결과를 기록하고자 게시글을 작성하게 되었다.


작성 배경

  어느 덧 SW마에스트로 활동도 마무리되었다. 비록 100% 만족할 만한 결과는 아니였지만, 실제 사용자도 받아볼 수 있었고, 나의 가치관에도 영향을 주었던 매우 뜻깊은 시간이였던 것 같다. 각설하고, 멘토님들의 마지막 멘토링에서 ‘실제 사용자를 받는 서비스를 운영하면서, 백엔드 개발자가 해보아야 할 것이 무엇인가?’라는 주제로 멘토님들께 여쭤봤었는데, 다들 스트레스 테스트를 해보라고 강력히 권고하셨다.
  곰곰히 생각해보면 백엔드 개발자 입장에서 스트레스 테스트를 해보는 것은 당연한 것인 것 같다. 스트레스 테스트를 해보아야 내가 만든 API가 서버에 얼마나 무리를 주는지 알고, 이에 따른 후속 조치가 필요하다는 것을 파악할 수 있을테니까.

Apache JMeter

  성능 테스트 도구로는 정말 많은 것들이 있겠지만, 나는 Apache JMeter를 사용하기로 하였다.
  Apache JMeter는 아파치 소프트웨어 재단에서 개발한 오픈 소스자바 기반 성능 테스트 도구이다. 다양한 프로토콜을 통한 응용 프로그램의 성능 및 부하 테스트를 위해 사용되는데, 웹 서버, 데이터베이스 서버, FTP 서버 등과 같은 다양한 서버와의 상호 작용을 시뮬레이션할 수 있다.

설치 및 실행 방법

  나와 팀원들의 개발 환경은 Mac을 사용하기 때문에 Mac에서 brew를 통한 사용 방법을 작성해두겠다.

설치 명령어

brew install jmeter

실행 명령어

open /usr/local/bin/jmeter    # Intel
open /opt/homebrew/bin/jmeter # M1, M2 (나의 경우))

이슈 해결

image

  타 블로그들에서 위의 명령어들을 통해 Apache JMeter를 실행하는 것을 확인해 볼 수 있었다. 하지만 brew로 실행할 경우 아래와 같은 에러가 발생하였고, 결국 홈페이지에서 다운로드를 진행하였다.

image

  압축 해제 하자.

image

  압축 해제 후 ./bin/jmeter 파일을 실행하도록 하자.

image

  나 같은 경우에는 여기서(본 이미지는 해당 이슈를 해결한 후 캡쳐하였기 때문에, jmeter-server로 대체하였다.) 한 번 더 막혔었다.
  해당 이슈를 해결하는 방법으로는 이 게시글에 쉽게 설명되어 있으니 참고 바란다. 해당 이슈를 해결 한 후 아래 명령어를 입력하면 Apache JMeter가 정상적으로 실행되는 것을 확인할 수 있다.

open 다운로드_경로/apache-jmeter-5.6.2/bin/jmeter

image

플러그인 설치

  이대로 JMeter를 사용할 수도 있지만, 보다 다양한 기능을 편리하게 활용하기 위해서는 플러그인을 설치하는 것을 권장한다.

플러그인 매니저 설치

  우선 홈페이지에서 Install 탭을 선택하고, 볼드체의 plugins-manager.jar를 클릭하면 다운로드가 진행된다.

image

  성공적으로 다운로드가 완료되면 .jar 파일을 확인할 수 있는데, 이를 아까 다운로드한 jmeter 디렉터리의 /lib/ext/ 하위 경로로 이동 혹은 복사해주고, JMeter를 재실행 해주자.

image

  이제 JMeter에서 플러그인 매니저 아이콘이 나타나고, 원하는 플러그인들을 설치할 수 있다.

image

  아이콘을 클릭하여 Available Plugins 탭을 클릭하면 원하는 플러그인들을 설치할 수 있는데 나의 경우에는 3가지의 플러그인을 설치하였다.

  • 3 Basic Graphs
  • Custom Thread Grooups
  • JMeter Listener pack

image

  이제 Apache JMeter를 이용하여 API 스트레스 테스트를 하기 위한 준비가 끝났다! 본격적인 테스트는 다음 게시글에서 이어서 기술하겠다.

Reference