부하 테스트(Load Test)는 실제 운영 환경에서 발생할 수 있는 대량의 트래픽이나 갑작스러운 사용량 증가 상황에서 시스템이 정상적으로 동작하는지 평가하기 위한 테스트다. 시스템이 어느 정도의 트래픽에서 안정적으로 동작하는지를 파악하고, 성능 병목 지점을 발견하는 데 중요한 역할을 한다.
부하 테스트는 애플리케이션의 성능이 악화되기 시작하는 임계치를 정확히 찾아내어 시스템의 성능을 개선하기 위한 목적으로 진행한다.
그러나 스트레스 테스트는 시스템이 극한의 조건에서 한계점에 도달했을 때 애플리케이션의 동작을 확인하기 위한 테스트로써 임계치 이상의 부하가 발생했을 때 시스템의 복구 절차 또는 보안 허점을 감지하기 위해 주로 진행한다.
💡 부하 테스트 VS 스트레스 테스트
구분 부하 테스트 스트레스 테스트 테스트 목적 전체 시스템의 성능 확인 중단 점에서의 동작, 복구 가능성 주요 성능지표 동시 사용자 수, 초 당 트랜잭션 동시 사용자 수, 메모리, CPU, 네트워크 등 테스트 대상 전체 시스템 식별된 트랜잭션에만 집중 테스트 완료 시기 예상 부하가 모두 적용되었을 경우 시스템 동작이 중단되었을 경우 보안성 확인 불가능 가능
성능 테스트는 부하 테스트와 스트레스 테스트를 포괄하는 더 상위 개념이다.
테스트의 목적을 명확하게 정의해야 한다.
👉 예시:
- 결제 트랜잭션 처리 시 1000명의 동시 사용자 요청을 처리할 수 있는지 확인
- 채팅 서비스에서 5000명의 동시 사용자가 접속했을 때 응답 속도가 1초 이내인지 검증
- 자리 예약 서비스의 평균 응답 시간이 500ms 이하이고 오류 발생률이 0.1% 미만인지 검증
테스트 시나리오는 사용자 행동을 기반으로 작성한다.
사용자의 행동 패턴과 실제 트래픽 패턴을 반영해야 한다.
👉 시나리오 예제:
- 사용자가 웹사이트에 접속한다.
- 로그인한다.
- 상품 목록을 조회한다.
- 상품 상세 정보를 확인한다.
- 장바구니에 상품을 추가한다.
- 결제를 진행한다.
- 로그아웃한다.
부하 테스트에서는 실제 트래픽 패턴을 반영해야 한다.
👉 예시:
- Ramp-up Time: 5분 동안 동시 사용자 100명에서 1000명까지 증가
- Steady State: 20분 동안 동시 사용자 1000명 유지
- Ramp-down Time: 5분 동안 동시 사용자 수 1000명에서 100명으로 감소
Reference