k6 테스트 알아보기 - 테스트 유형

민정·2025년 2월 8일

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)

  • 정의

    • 시스템의 한계를 찾는 것을 목표로 진행한다.
    • 설정된 임계값 조건에 실패하는 경우 중단한다.
  • 목표

    • 시스템 부하가 지속적으로 증가할 것으로 예상되는 경우 필요
    • 현재 자원 소모가 높다고 간주되는 경우 필요
    • 코드 베이스나 인프라에 상당한 변경이 발생한 후 필요
  • 고려 사항

    • 램프다운, 유지 기간이 없이 램프업만 존재함
    • 탄력적인 클라우드 환경에서는 불필요함
    • 부하를 점차적으로 늘려야 함 → 급격하게 증가 시 왜, 언제 실패하는지 알기 어려움
    • 다른 모든 테스트 유형에서 성능이 입증된 경우에만 실행
  • 결과 분석

    • 시스템 장애를 유발해야 함
    • 테스트 결과를 확인한 후 한계를 수용하거나 시스템을 조정함
      • 한계를 수용하는 경우, 한계에 가까워졌을 때를 대비하도록 함
      • 시스템을 조정하는 경우, 브레이크 포인트 테스트를 반복해 한계를 높이도록 함
profile
시스템 + 리눅스 + 클라우드

0개의 댓글