성능 측정 및 부하 테스트 기능을 제공하는 오픈 소스 자바 애플리케이션이 JMeter이다.
다양한 형태의 애플리케이션 테스트를 지원한다. 꼭 http기반 웹이 아니더라도 SOAP, REST 웹 서비스, FTP, 데이터베이스(JDBC지원), Mail서비스 모두 테스트 가능
그리고 CI/CD 툴과 연동할 수 있는 CLI환경도 지원한다.
사용하기 위해서 알고 있어야 하는 기본 개념들
Thread Group: 한 쓰레드 당 유저 한명으로 생각하면 됨. 이 유저들의 그룹을 쓰레드 그룹이라고 생각.
Sampler: 각 유저가 테스트를 위해 취하는 요청들
Listener: 응답을 받았을때 서버가 취하는 행위
Configuration: Sampler, Listener가 사용할 설정(쿠키, JDBC 커넥션 등)
Assertion: 응답이 성공적인지 확인하는 방법(응답 코드, 본문 내용 등)
기본적으로 JMeter는 테스트 대상 리소스와 서버를 분리해야 한다. 부하 테스트 자체도 리소스를 많이 먹는데, 그 테스트 대상 서버도 리소스를 많이 먹으니까. 제대로 테스트 하려면 호스트를 분리해야 함.