테스트 코드를 수정하던 도중, 이러한 생각이 문득 들었다.
만약 내 애플리케이션에 많은 수의 클라이언트가 동시에 요청을 보내면 어떻게 될까?
그래서 테스트 도구를 찾아보고 여쭤보던 중, Apache JMeter라는 툴을 발견!
그대로 사용해보기로 했다. 지금부터 Apache JMeter를 사용하는 방법을 알아보자.
Apache Jmeter의 사용법을 알아보기 전에, 우선 부하 테스트가 뭔지부터 알아보자.
성능 테스트의 한 종류로, 임계값 한계에 도달할 때까지 시스템의 부하를 지속적으로 꾸준히 증가시켜 시스템을 테스트하는 방법
내가 생각한 방법은, 가상의 여러 유저를 생성해서 한 API를 100번, 1000번 요청해보는 것!
Apache JMeter는 서버가 제공하는 성능 및 부하를 측정할 수 있는 테스트 도구로, 서버나 네트워크 또는 개체에 대해 과부하를 시뮬레이션하여 강도를 테스트하거나 다양한 부하 유형에서 전체 성능을 분석할 수 있다.
- Thread Group : 동시에 요청을 보내는 쓰레드 수
- Listener : 응답을 받았을 때 취하는 동작 (검증, 리포트, 그래프 그리기 등)
- Configuration : Sampler 또는 Listener가 사용할 설정 값 (쿠키, JDBC 커넥션 등)
- Assertion : 응답 결과의 성공 여부를 판단하는 조건 (응답 코드, 본문 내용 등)
brew search jmeter
jmeter
Thread Group
하나를 생성해준다.Thread Properties
을 설정해준다.Number of Threads
: 요청을 보내는 사용자의 수Ramp-up period
: 요청을 보내는 시간 간격Loop Count
: 반복 횟수Server Name
: 서버 도메인 혹은 아이피 주소(필자의 경우 로컬에서 개발중이기 때문에 localhost
를 넣어주었다.)Port Number
: ex) 8080
Path
: 테스트할 API의 URIBody Data
: Body에 실어보낼 요청값HTTP Header Manager
를 생성해준다.Listener
를 추가해준다.Thread Properties
속성은 100명의 유저가, 1초에 요청을 보내고 10번을 수행해서 총 1000번의 요청이 수행되도록 해보았다.단위 테스트도 좋지만, Apache JMeter를 이용한 부하 테스트도 사용법이 어렵지 않으니 진행해보자!