
Grafana K6 공식 문서를 읽고 정리한 글이다.
테스트 유형
스모크 테스트(Smoke tests)

-
정의
- 최소 부하, 짧은 시간 동안 테스트가 잘 작동하는지 확인한다.
-
목표
- 테스트 스크립트 검증
- 최소 부하에서 시스템 오류 발생 여부 확인
- 최소 부하에서 시스템 응답의 기본 성능 지표를 수집
-
고려 사항
- 스크립트 생성, 업데이트 시 스모크 테스트로 검증
- 소수의 VU(2~20명), 적은 반복 또는 짧은 기간(30초 ~ 3분)동안 실행하도록 구성
-
결과 분석
- 스크립트 오류 발생 여부 확인
- 최소 부하에서 성능 저하가 발생하는지 확인
- 스모크 테스트에서 오류 없음 + 적절한 성능 결과가 나타나는 경우 다른 유형의 테스트 진행
평균 부하 테스트(Average-load tests)

-
정의
- 시스템이 일반적인 부하에서 어떻게 수행되는지 평가한다.
- 처리량, VU를 점진적으로 증가시키고 일정 시간동안 평균 부하를 유지한다.
-
목표
- 일반적인 부하 상황에서 시스템 성능 평가
- 램프업, 최대 부하 동안 성능 저하 징후가 나타나는지 확인
- 시스템 변경 후에도 여전히 성능 기준을 충족하는지 확인할 때 진행
-
고려 사항
- 시스템 사용자 수, 프로세스 당 일반적인 처리량 확인
- 램프업 사용 및 램프업 기간보다 최소 5배 이상 긴 평균 기간 유지
- 램프다운 사용
-
결과 분석
- 부하 증가에 따른 응답 시간 저하 여부 확인
- 최대 부하 동안 시스템 성능, 리소스 소비의 안정적 유지 검증
- 평균 부하 테스트 이후 평균 이상의 조건에서 실행되는 테스트(스트레스 테스트 등) 진행
스트레스 테스트(Stress tests)

-
정의
- 평소보다 부하가 더 클 때 시스템의 성능을 평가한다.
- 부하 패턴은 평능 부하 테스트와 유사하다.
-
목표
- 큰 부하에서 시스템의 안정성, 신뢰성 검증
- 비정상적인 순간, 평균보다 높은 트래픽 유발 상황에서 테스트
-
고려 사항
- 부하가 시스템 평균보다 더 높아야 함
- 스모크 테스트, 평균 부하 테스트가 반드시 선행되어야 함
- 평균 부하 테스트의 스크립트를 재사용
- 더 높은 부하, VU를 가짐
- 더 긴 램프업, 램프다운 시간
-
결과 분석
- 부하 증가에 따른 응답 시간 저하 여부 확인
- 최대 부하 동안 시스템 성능, 리소스 소비의 안정적 유지 검증
- 평균 부하 테스트와 비교해 성능이 얼마나 저하하는지, 시스템이 견뎌내는지 확인
소크 테스트(Soak tests)

-
정의
- 평균 부하 테스트의 변형으로, 최대 부하 기간이 매우 길다.
- 장기간 테스트를 진행하는 것에 초점을 맞춘다.
-
목표
- 장기간 사용 시 시스템 안정성, 신뢰성 검증
- 장기간 사용으로 인한 성능 결함(응답 시간 저하, 리소스 누수, 데이터 포화) 확인
-
고려 사항
- 상당히 긴 기간(3, 4, 8, 12, 24, 48~72시간 등)동안 진행
- 스모크 테스트, 평균 부하 테스트가 반드시 선행되어야 함
- 평균 부하 테스트의 스크립트를 재사용
- 리소스, 코드 효율성 모니터링 필요
-
결과 분석
- 시간이 지남에 따른 성능 지표의 변화 모니터링
- 리소스(RAM 소모, CPU, 네트워크, 클라우드 리소스) 확인
- 백엔드 성능, 리소스 활용도의 안정적 유지 및 예상 변동 내에 있음을 확인
스파이크 테스트(Spike tests)

-
정의
- 시스템이 갑작스러운 대량의 부하에 정상적으로 작동하는지 확인한다.
-
목표
- 시스템이 갑작스러운 부하 급증을 견딜 수 있는지 확인
-
고려 사항
- 램프업, 램프다운 시간이 매우 짧거나 존재하지 않음
- 매우 높은 부하로 증가
- 테스트에서 오류가 발생하기 쉬움
- 백엔드 모니터링을 필수적으로 진행해야 함
-
결과 분석
- 부하 급증 후 복구 시간, 정상으로 돌아가는 시간, 중요 시스템 프로세스의 동작 확인
- 시스템의 반응 파악 및 최적화
- 시스템 신뢰도가 높아질 때까지 테스트 반복, 최적화
브레이크 포인트 테스트(Breakpoint tests)

-
정의
- 시스템의 한계를 찾는 것을 목표로 진행한다.
- 설정된 임계값 조건에 실패하는 경우 중단한다.
-
목표
- 시스템 부하가 지속적으로 증가할 것으로 예상되는 경우 필요
- 현재 자원 소모가 높다고 간주되는 경우 필요
- 코드 베이스나 인프라에 상당한 변경이 발생한 후 필요
-
고려 사항
- 램프다운, 유지 기간이 없이 램프업만 존재함
- 탄력적인 클라우드 환경에서는 불필요함
- 부하를 점차적으로 늘려야 함 → 급격하게 증가 시 왜, 언제 실패하는지 알기 어려움
- 다른 모든 테스트 유형에서 성능이 입증된 경우에만 실행
-
결과 분석
- 시스템 장애를 유발해야 함
- 테스트 결과를 확인한 후 한계를 수용하거나 시스템을 조정함
- 한계를 수용하는 경우, 한계에 가까워졌을 때를 대비하도록 함
- 시스템을 조정하는 경우, 브레이크 포인트 테스트를 반복해 한계를 높이도록 함