[Testing] Performance Testing - Load Testing, Stress Testing

이홍준·2024년 7월 29일
0

출처: https://www.opencodez.com/software-testing/what-is-performance-testing-performance-testing-types-tools-skills-required-and-career-growth.htm

개발을 하면서 도입하고자 하는 기술들이 여러가지 있었습니다. 해당 기술을 도입하는 데에 중요한 조건 중에 하나는 Performance에 관한 부분이었습니다. Performance를 측정하기 위한 방법과 종류에 대해서 한번 알아보고 기록하고자 합니다.

Softwarer Performance Testing이란?

  • Speed
  • Scalability
  • Stability

테스트 요소

  • 어디까지 부하 를 감당 할 수 있는가?
  • 에러가 발생하는가?
  • 병목 현상이 발생하는가?

테스트 항목

  • Response Time: 요청이 처리되는 데 걸리는 평균 시간.
  • Throughput: 초당 처리되는 요청 수.
  • Resoruce Utilization: CPU, Memory, Disk, Network 대역폭 등의 자원 사용률
  • Stablility: 장시간 동안의 성능 유지 여부
  • Error Rate: 처리 실패 또는 타임아웃 발생 비율

성능 테스트 종류

  1. 부하 테스트 (Load Testing): 최대 부하 조건에서 시스템이 어떻게 작동하는지 테스트합니다.
  2. 스트레스 테스트(Stress Testing): 시스템이 한계를 넘는 부하에서 어떻게 반응하는지 평가합니다.
  3. 스파이크 테스트(Spike Testing): 짧은 시간에 급격히 증가하는 부하 상황에서 시스템이 어떻게 반응하는지 평가합니다.
  4. 내구성 테스트(Soak Testing, Endurance testing) : 장시간 동안 지속되는 부하에서 시스템의 성능과 안정성을 평가합니다.
  5. 볼륨 테스트(Volume Testing): 대량의 데이터를 처리할 때 시스템의 성능을 평가합니다.
  6. 회복력 테스트(Resilience Testing): 시스템이 스트레스 상태에 있을 때 초기 상태로 돌아갈 수 있을 만큼 충분한 지 여부를 확인합니다.
  7. 실패 테스트(Failure Testing): 종속된 다른 모듈을 사용할 수 없는 경우 어떤 모듈이 어떻게 수행되는 지 확인하기 위해 실행됩니다.
  8. 복구 테스트(Recovery Testing): 부하가 정상 수준으로 감소했을 때, 애플리케이션이 스스로를 복구할 수 있는지 확인합니다.

성능 문제 원인

  • 병목현상
  • 확장성이 낮음
  • Configuration 문제
  • 하드웨어 문제(스펙이 낮음)
  • 메모리 누수
  • 네트워크 구성
  • OS 제한
  • CPU 사용률 낮음

성능 테스트 도구

  • 부하 테스트: Apache JMeter, nGrinder, Gatling, Locust
  • 모니터링: Prometheus(모니터링 및 경고) & Grafana(시각화), ELK

References


profile
I'm not only a web developer.

0개의 댓글