56. Artillery(1) (항해 64일차)

코이그·2023년 6월 5일

항해99

목록 보기
52/54

Artillery

  • 성능 테스트 툴킷.

성능 테스트?

Artillery는 두 가지 성능 테스트를 수행할 수 있다.

  1. 부하 테스트(시스템에 부하를 가하는 테스트)
    • 로드(부하) 테스트: 예상되는 사용 패턴과 부하 조건을 기반으로 시스템이 얼마나 잘 작동하는지 테스트.
      • 응답시간, 처리량, 자원사용량 등 측정, 시스템의 성능 한계/저하 발생 지점 식별.
      • 정상적인 운영 상황에서의 성능 확인
    • 스트레스 테스트: 예상되는 부하 이상의 작업 처리 시 성능&안전성 평가.
      • 최대 부하를 넘어서는 트래픽/동점자 수 가정.
      • 과부하 상황에서 응답시간, 에러율, 처리량 등 측정, 시스템의 신뢰성 & 견딜 수 있는 부하 확인.
    • soak(평균|지속 부하) 테스트: 오랜 기간 동안 지속적인 부하를 가하여 성능과 안정성을 테스트.
      • 지속적인 부하에 대해 얼마나 안정적으로 작동하는지
      • 장시간 동안의 운영 중에 발생할 수 있는 문제/성능저하 확인 (안정성, 리소스/메모리 누수 등)
  2. 지속적인 기능 테스트(시스템이 의도대로 작동하는 지 테스트)

뭘 테스트할 수 있는지?

  • 주로 백엔드.. API, 채팅, 게임, 데이터베이스, 메시지 브로커 등등 네트워크를 통해 통신할 수 있는 모든 시스템/서비스.
  • 다양한 프로토콜 지원: HTTP, 웹 소켓, 소켓io 등

일반적인 사용 시나리오

  1. 일시적인 부하 테스트를 수행하여 개별 API나 마이크로서비스의 성능 특성 탐색. 필요한 경우 성능 최적화 수행.
  2. 새로운 서비스의 출시 전 대규모 부하 테스트 수행 / 대규모 트래픽의 처리를 위한 애플리케이션과 인프라 준비.
  3. Running tests against staging/feature environments as part of a CI/CD pipeline to catch performance regressions early, and to verify SLOs
  4. Adding synthetic traffic in production to maintain a margin of safety against traffic spikes
  5. Running synthetic monitoring against key APIs from multiple geographical locations to verify that key transactions & flows work as expected, and alert if anything breaks
profile
COYG🔴⚪

0개의 댓글