[Spring Boot] Apache JMeter를 이용한 부하 테스트

윤진원·2023년 5월 3일
4

Spring Boot

목록 보기
2/6
post-thumbnail

❗️ 문제 상황

테스트 코드를 수정하던 도중, 이러한 생각이 문득 들었다.

만약 내 애플리케이션에 많은 수의 클라이언트가 동시에 요청을 보내면 어떻게 될까?

그래서 테스트 도구를 찾아보고 여쭤보던 중, Apache JMeter라는 툴을 발견!

그대로 사용해보기로 했다. 지금부터 Apache JMeter를 사용하는 방법을 알아보자.


부하 테스트란?

Apache Jmeter의 사용법을 알아보기 전에, 우선 부하 테스트가 뭔지부터 알아보자.

성능 테스트의 한 종류로, 임계값 한계에 도달할 때까지 시스템의 부하를 지속적으로 꾸준히 증가시켜 시스템을 테스트하는 방법

내가 생각한 방법은, 가상의 여러 유저를 생성해서 한 API를 100번, 1000번 요청해보는 것!


Apache JMeter란?

JMeter의 정의

Apache JMeter는 서버가 제공하는 성능 및 부하를 측정할 수 있는 테스트 도구로, 서버나 네트워크 또는 개체에 대해 과부하를 시뮬레이션하여 강도를 테스트하거나 다양한 부하 유형에서 전체 성능을 분석할 수 있다.


JMeter의 주요 개념들

  • Thread Group : 동시에 요청을 보내는 쓰레드 수
  • Listener : 응답을 받았을 때 취하는 동작 (검증, 리포트, 그래프 그리기 등)
  • Configuration : Sampler 또는 Listener가 사용할 설정 값 (쿠키, JDBC 커넥션 등)
  • Assertion : 응답 결과의 성공 여부를 판단하는 조건 (응답 코드, 본문 내용 등)

💡 문제 해결

Apache JMeter 설치 및 실행

  • MacOS의 경우 간단한 명령문으로 설치할 수 있다.
brew search jmeter

  • 실행문
jmeter

Apache JMeter 사용법

  1. Thread Group 하나를 생성해준다.

  1. 이름 및 Thread Properties 을 설정해준다.
  • Number of Threads : 요청을 보내는 사용자의 수
  • Ramp-up period : 요청을 보내는 시간 간격
  • Loop Count : 반복 횟수

  1. 테스트할 HTTP Request를 생성해준다.

  1. 사용할 속성들을 넣어준다.
  • Server Name : 서버 도메인 혹은 아이피 주소(필자의 경우 로컬에서 개발중이기 때문에 localhost 를 넣어주었다.)
  • Port Number : ex) 8080
  • Path : 테스트할 API의 URI
  • Body Data : Body에 실어보낼 요청값

  1. 헤더에 정보를 추가하기 위해 HTTP Header Manager 를 생성해준다.

  1. 헤더에 필요한 속성들을 추가해준다.

  1. 테스트 후, 성능 지표를 보기 위한 Listener 를 추가해준다.

  1. 테스트를 실행하고 결과를 확인한다.
  • 필자의 경우 현재 진행중인 프로젝트의 "게시글 작성" API를 테스트해보았다.
  • Thread Properties 속성은 100명의 유저가, 1초에 요청을 보내고 10번을 수행해서 총 1000번의 요청이 수행되도록 해보았다.


👍🏻 결론

단위 테스트도 좋지만, Apache JMeter를 이용한 부하 테스트도 사용법이 어렵지 않으니 진행해보자!

profile
기억보단 기록을

0개의 댓글