성능 테스트의 기준을 어떻게 잡을지 생각해보기전에 왜 성능 테스트를 해야 하는 가를 생각해보자.
구글 리서치에 따르면 응답 지연 시간이 1-3초만 되어도 사용자 이탈률이 32%증가한다고 한다. 성능 테스트는 서비스가 n명의 사용자가 m만큼 요청을 보냈을 때, 지연 시간이 얼마나 걸리는 지, 지연되는 이유가 무엇인지를 파악하는 데 의의가 있다.
초당 처리하는 작업의 수를 의미한다.

시스템 구조가 다음과 같을 때, 현재 시스템 처리량은 서브 시스템 중 가장 낮은 처리량이 된다. 즉, 현재 시스템 처리량은 100rps가 된다.
즉, 200rps나 300rps 구간의 처리량 성능을 향상시킨다고 해도, 시스템 처리량은 가장 낮은 rps인 100rps가 된다. 전체적인 성능 향상을 위해서는 처리량이 가장 낮은 구간을 파악하고 개선하는 것이 중요하다.
시스템이 요청을 받고 응답할 때까지의 시간을 의미한다. 시스템이 요청을 처리할 때 까지 대기하는 시간도 응답 시간에 포함한다.

시스템 응답 시간은 각 서브 시스템 응답 시간의 총합이다. 예시의 경우, 응답 시간은 600ms가 된다. (100ms + 200ms + 300ms)
응답 시간은 어떤 부분을 개선하더라도 총 시스템 응답 시간 개선에 영향을 끼친다.
물론 처리량과 응답 시간은 상관관계를 가지고 있다. 처리량을 개선하면, 대기 시간이 줄어드니 응답 시간을 개선하는 데 도움이 될 수 있다. 응답 시간을 개선하면 요청을 빠르게 처리하니 처리량 개선에 도움이 될 수 있다.
성능 테스트는 부하 및 스트레스 테스트의 상위 집합이다. 성능 테스트는 크게 6가지의 종류로 나눌 수 있다. 각 개념은 엄격하게 나눠진 개념은 아니고 포함 관계인 개념도 있다! (스파이크 테스트 ⊂ 스트레스 테스트) 가볍게 성능 테스트를 이렇게 다양한 방식으로 할 수 있구나~ 정도만 알고 넘어가자!
최소한의 부하를 주어 시스템이 정상적으로 동작하는지 확인한다.
내구성 테스트를 포함하는 개념이다. 시스템이 임계치에 도달하기전인 시점을 검사한다.
목표값을 설정하고, 목표값만큼의 부하를 견딜 수 있는지를 테스트한다.
시스템이 향후 예상되는 로드를 관리할 수 있도록 데이터베이스, 하드웨어등과 같은 시스템의 모든 구성 요소에 대한 상한을 정해야 한다. 이런 목표치를 SLA(Service Level Agreement)라고 한다.
내구성 테스트 및 스파이크 테스트를 포함하는 개념이다.
임계치를 초과한 경우를 보기 위해 테스트한다. 시스템의 최대치에 해당하는 부하를 받아 오류를 일으킬 때, 시스템이 어떻게 정상적으로 복구하는 지, 손상된 데이터가 없는 지를 확인하는 데 의의가 있다.
스파이크 테스트와 내구성 테스트는 스트레스 테스트에 포함되는 개념이다.
스파이크 테스트라고 한다.내구성 테스트라고 한다.평균 사용률로 일정 부하를 지속적으로 주는 테스트이다. (내구성 테스트는 흡수 테스트(soak test)라고도 한다.)임계 지점을 찾기 위해 부하를 점진적으로 증가시키면 테스트하는 것을 의미한다.