ETC - 성능 테스트

불순분자들·2022년 8월 25일
0

ETC( 기타 )

목록 보기
10/24

성능 테스트

성능 테스트는 애플리케이션의 안정성과 속도, 확장성 및 반응성이 어떻게 유지되는지를 판별하는 비기능적 소프트웨어 테스트 기법이다.
성능 테스트의 목표에는 애플리케이션 결과 평가, 처리 속도, 데이터 전송 속도, 네트워크 대역폭 사용량, 최대 동시 사용자 수, 메모리 이용률, 워크로드 효율성, 명령 응답 시간 등이 포함된다.

성능 테스트가 필요한 이유

  • 애플리케이션이 성능 요건을 충족하는지 판별( 예를 들어 시스템은 최대 1,000명의 동시 사용자를 처리해야 함 )
  • 애플리케이션 내 컴퓨팅 병목 현상을 유발하는 위치 파악
  • 실제 성능 수준이 소프트웨어 벤더가 주장하는 성능 수준과 동일한지 판별
  • 두 개 이상의 시스템 비교 및 가장 성능이 좋은 시스템 식별
  • 최대 트래픽 이벤트에서 안정성 측정.

서버 성능 테스트를 시작한다면 알아야 할 것

실 서비스를 준비하는데 있어서 서버의 성능 테스트는 매우 중요한 부분이다.
성능 테스트의 주 목적은 병목현상을 어떻게 해결해 개선을 이루어낼 것인가가 관건이다.

  1. Response Time : 클라이언트의 요청을 서버에서 처리하여 응답해주는데까지 걸리는 전체 시간을 말한다.

  2. Think Time : 사용자가 Request를 보내기 전까지 활동하는 시간을 의미한다. 서버에 요청을 하지 않고, 문서를 보는 등...

  3. Concurrent User : 동시에 서비스를 사용하는 유저를 말한다. 일반적으로 Concurrent User는 Active User 와 Inactive User로 분류한다.

  • Active User : 실제 Request를 보내고 Response를 대기 혹은 Connection을 잡고 있는 유저

  • Inactive User : 실제 Request를 수행하지 않고 대기중인 유저로 웹서버의 경우 대부분의 Inactive User는 Think time을 갖는 유저로 간주한다.

  1. Throughput : 서버가 클라이언트에 송신한 데이터 량

  2. VUser : Virtual User - 주로 퍼포먼스 테스트를 위해 만드는 가상 유저

  3. MRT : Mean Response Time으로 유저들에 대한 평균 응답시간

  4. TPS : Transaction Per Second의 약자로 주로 서버 성능의 척도가 되며, 초당 트랜잭션 처리 수를 의미한다.

  5. Scenario : 테스트를 위한 시나리오를 뜻하며, 정확한 TPS 측정을 위해서 가장 중요한 부분 중 하나이다.
    실제 서비스에서 유저가 어느 비율로 어떤 API를 호출할지 예측하는 과정이 필수적이다.

  6. DAU : 하루동안 방문한 사용자 수

  7. MAU : 한달동안 방문한 사용자 수

성능 테스트 순서

1. 테스트 환경 및 도구의 식별

가용한 생산 환경, 테스트 환경 및 테스트 도구를 식별한다. 또한, 일관성을 보장하기 위해 테스트 환경과 생산 환경 모두에서 하드웨어, 소프트웨어, 인프라 사양 및 구성을 문서화한다.

2. 허용되는 성능 기준 정의

테스트 성공을 입증할 임계값과 제약조건 및 목표를 판별한다.
주요 기준은 프로젝트 사양을 직접 활용해서 결졍하지만 다양한 테스트와 벤치마크를 설정하기 위해 테스터들에게 적절한 권한을 부여한다.

3. 테스트 계획 및 설계

사용법이 얼마나 달라질 것인지 고려한 후 가능한 모든 사용 사례에 적용할 수 있는 테스트 시나리오를 만들어 테스트를 설계한 후 캡처가 필요한 지표를 지정한다.

4. 테스트 환경 및 도구의 준비

성능 테스트를 실행하기 전에 테스트 환경을 구성한다.

5. 성능 테스트 실행

테스트를 실행한 후, 결과를 캡처하고 모니터링한다.

6. 해결 및 재테스트

테스트 결과를 통합하고 분석한 후 분석 내용을 공유한다.
파악된 성능상 단점을 해결하여 애플리케이션을 세부적으로 조정하고, 테스트를 반복하여 각각의 문제가 해결되었는지 확인한다.

profile
장래희망 : 침대 위 녹아든 치즈

0개의 댓글