본문 바로가기
끄적끄적 etc

부하테스트란 ? 필요한 이유 및 부하테스트 툴 종류

by Dddu 2024. 4. 8.
SMALL

요즘 업무시간에 하루에 최소 2번씩 등장하시는 부하테스트.

 

이제 부하테스트 관련 협의를 시작하는 단계라
일단, 부하테스트가 무엇인지? 왜 필요한지 ? 부하테스트 툴엔 무엇이 있는지 ?
세가지 물음표를 정리해보았다. 

 

부하테스트 란?

특정한 부하를 제한된 시간을 두어서 웹 어플리케이션에 이상이 없는지 파악하는 테스트

부하테스트를 해야 하는 이유는 ? 

개발환경과 실제로 서버를 배포한 환경이 다르기 때문.

실제로 서비스를 배포한다면, Postman을 통하여 API 테스트를 진행한 것과 달리

1000명, 10000명 그 이상의 사용자를 수용할 수 있어야 하므로 동시 사용자를 버틸 수 있는 지에 대해 테스트가 필요하다.

 

부하테스트 전 고려할 사항

서버의 사용자 수와 하나의 프로세스 당 서버가 처리해야 할 데이터양을 파악한 후에 테스트를 진행해야 함.

 

 

 부하테스트 툴 종류별 특징

  • jMeter
    apache에서 만든 java 기반의 오픈소스로, 오래된 테스트 툴.
    무료이며 사용자가 작성한 테스트 스크립트를 쉽게 재사용할 수 있음
    다양한 플러그인과 확장 기능이 존재, 사용자 커뮤니티가 활발
    부하테스트에 집중되어 있고 과도한 부하테스트 시뮬레이션 가능
    단점 : 복잡한 테스트 시나리오나 대규모 시스템에서는 부적합
  • nGrinder
    네이버에서 만든 오픈소스
    깔끔한 GUI, 사용하기 편함
    하지만 스레드 기반으로 구현되어 있어 성능제약이 있다고 함.
  • K6
    최신 오픈 소스.
    javascript로 부하테스트 시나리오 작성할 수 있다는 장점.
    HTTP, WebSocket 등 프로토콜을 지원하는 기능 풍부.
    분산 시스템과 마이크로서비스 아키텍처에서의 성능을 검증
    부하 시뮬레이션 가능
  • loadview
    클라우드 기반의 성능 테스트 도구
    jMeter와 비슷하지만 유료 
    시각화 서비스가 좋음
    오류를 잘 잡아냄
    보안을 알아서 설정함
    빠른 시간 내에 통계를 잘냄
    대규모 시스템에서도 안정적인 결과 제공
    사용자 시나리오 생성 및 관리 간편
    -> 역시 유료라 장점이 많은 듯 ?
  • LoadNinja
    SmarBear 소프트웨어에서 개발한 클라우드 기반 성능 테스트 도구
    녹화 기능을 이용해 브라우저 레벨에서 스크립트를 생성하여 사용자 시나리오를 생성할 수 있음
    분산 테스트와 지속적인 성능 모니터링 제공
    브라우저 기반의 테스트로 실제 사용자가 직면할 수 있는 성능 문제 확인 가능
    = 무료로 사용할 수 있는 CLI 도구를 제공하지만, 추가 기능을 SaaS 형태로 제공함.
    (요즘 SaaS 형태가 대세인가 보다)

 

LIST