성능 테스트 종류
1. Dry Run (드라이 런)
본격적인 테스트에 앞서 스크립트와 환경에 문제가 없는지 확인하는 단계이다.
목적: 테스트 스크립트의 오류 확인 및 데이터 정합성을 검증한다.
방법: 아주 적은 수의 가상 사용자(1~2명)로 테스트를 한 번 실행해 본다.
핵심: 시스템의 한계를 측정하는 것이 아니라, “테스트가 제대로 돌아가는가”를 확인하는 것이다.
2. Load Test (부하 테스트)
시스템의 기대 성능(설계된 부하)을 견딜 수 있는지 확인하는 가장 일반적인 테스트이다.
목적: 예상되는 평상시 트래픽과 최대 트래픽 상황에서 응답 시간 및 자원 사용량을 측정한다.
방법: 목표 부하(Target Load)까지 서서히 부하를 올린 뒤 일정 시간 유지한다.
핵심: 서비스 수준 계약(SLA)을 만족하는지, 병목 현상(Bottleneck)이 어디인지 파악한다.
3. Stress Test (스트레스 테스트)
시스템이 언제 무너지는지(임계점) 확인하고, 무너진 후 어떻게 복구되는지 확인하는 테스트이다.
목적: 시스템의 한계 측정 및 비정상 상황에서의 가용성을 확인한다.
방법: 시스템이 감당할 수 없는 수준까지 부하를 계속해서 높인다.
핵심: 시스템이 뻗었을 때 데이터 유실은 없는지, 부하가 줄어들었을 때 자동으로 복구(Auto-healing)되는지 확인한다.
4. Spike Test (스파이크 테스트)
갑작스럽게 트래픽이 폭증하는 상황을 가정하여 시스템의 반응을 확인한다.
목적: 이벤트 시작, 수강 신청, 티켓팅 등 단시간에 대량의 사용자가 몰릴 때의 안정성을 검증한다.
방법: 짧은 시간 내에 부하를 극단적으로 높였다가 다시 낮춘다.
핵심: 급격한 부하 변동에 시스템이 얼마나 탄력적으로 대응하는지, 부하가 빠진 뒤 자원 회수가 즉각적으로 이루어지는지 확인한다.
5. Soak / Endurance Test (소크 / 내구력 테스트)
장시간 동안 일정 부하를 지속시켜 시스템의 잠재적인 결함을 찾는다.
목적: 메모리 누수(Memory Leak), 자원 고갈 등 시간이 지나야 나타나는 문제를 발견한다.
방법: 평균 부하를 수 시간에서 수일간 계속 유지하며 모니터링한다.
핵심: 시간이 지남에 따라 응답 시간이 느려지거나 서버가 다운되는 현상이 없는지 확인한다.