서버 부하 테스트의 의의

- 서버 성능 테스트
- 실제 서비스를 위해 서버를 배포하기에 앞서 서비스 사용자 규모 및 트래픽을 산정하기 위한 테스팅이 필수적이다.
- 백엔드 측면의 서버 테스팅에는 크게 Load Testing(부하 테스트), Stress Testing(스트레스 테스트), Performance Testing(퍼포먼스 테스트) 등 이 있다.
- 본 포스팅에서는 백엔드 서버테스팅 중 Jmeter를 활용한 Load Testing(부하테스트)을 중점적으로 알아보고자 한다.
- 부하 테스트
- 부하 테스트란 해당 소프트웨어가 완성된 뒤 배포되는 네트워크 및 하드웨어 환경에서 얼마나 많은 사용자가 동시에 사용할 수 있는지 측정하는 테스트를 뜻한다.
- 실제 서버를 서비스하는 중 많은 인원이 요청을 보낼 때 장애상황이 오는 경우를 대비하기 위해 부하테스트를 통해 서비스가 처리할 수 있는 요청이 어느 정도인지 측정하는 것은 매우 중요하다.
- 부하테스트를 위해 만들어진 서비스로는 Jmeter, Locust, Gatling, nGrind 등의 도구가 있다.
JMeter란?
- 기능 동작을 로드하고 성능을 측정하도록 설계된 오픈소스 java 어플리케이션
- 정적 및 동적 어플리케이션 모두에서 성능 테스트가 가능
JMeter의 특징
다양한 종류의 애플리케이션/서버/프로토콜에 대한 부하 및 성능 테스트 가능
- 웹 - HTTP, HTTPS(자바, NodeJS, PHP, ASP.NET 등)
- SOAP / REST 웹 서비스
- FTP
- JDBC를 통한 데이터베이스
- LDAP
- JMS를 통한 메시지 지향 미들웨어(MOM)
- SMTP(S), POP3(S) 및 IMAP(S)
- 기본 명령 또는 셸 스크립트
- TCP