단위/성능/스트레스 테스트 등 많은 곳에서 활용 가능하다.
범용으로 사용되는 대부분의 프로토콜을 지원한다.
통신 프로토콜 단계에서만 동작하고 웹 브라우저에서는 동작하지 않는다.
즉, 클라이언트와 서버 간 메시지의 송수신만 가능하다.
Throughput: 단위 시간당 대상 서버(웹서버, WAS, DB 등)에서 처리되는 요청의 수
Active User: 실제 서버에 연결된 상태로 요청을 처리 중인 사용자
InActive User: 웹브라우저에 결과 화면이 출력된 상태에서 화면의 내용을 읽거나 정보를 입력하고 있는 사용자. 서버와의 세션(Session) 정보를 가지고 있지만 직접 접속하여 요청을 주고받는 상태가 아닌 사용자를 의미
Concurrent User(Active User + InActive User): 보통 '동시 접속 사용자수'라고 표현한다. 일반적으로 사용자 수의 많고 적음을 표현하는 값으로, 성능 테스트에서 가상 사용자 수를 결정하는 기준이 된다. 일반적으로 Active User와 InActive User 비율이 1:10 정도이다.
Virtual User: 가상 사용자 수로, JMeter에서는 Thread 수로 표현하기도 한다.
Response Time/Load Time: 응답시간 또는 처리시간. 요청을 보낸 후 응답이 완료되어 사용자 화면에 출력될때까지의 시간. 시스템의 성능을 평가하는 지표로 주로 사용됨.
Latency: 요청을 보낸 후 데이터를 받기 시작할 때까지 시간
Think Time: 하나의 요청에 응답을 수신하고 다음 요청을 보낼 때까지 시간
Request Interval Time: 요청을 보낸 후 다음 요청을 보낼때까지 시간
Transaction : Request + Response 가 하나의 트랜젝션을 이룬다. ( 사용자 수 <= 트랜젝션 수 ) 화면 조작을 통한 Request발생 ~ Response를 받기까지의 동작을 의미
TPS(Transaction Per Sec) : 1초에 처리할 수 있는 트랜젝션 수
정의 : 서비스 및 서비스 시스템의 성능을 확인하기 위해서 실제 사용환경과 비슷한 환경에서 테스트를 진행하는 것
목적 : 1. 목표 성능 도달 여부 확인, 2. 한계 성능 측정 , 3. 부하 스트레스 하에서 기능 안정성 확인
Load 테스트: 시스템의 성능을 벤치 마크하기 위한 테스트. 이 테스트는 부하(Load)를 순차적으로 증가시키면서 응답시간이 급격히 증가하거나 더는 처리량이 증가하지 않거나 시스템의 CPU와 Memory 등이 기준값 이상으로 증가하는 등 비정상 상태가 발생하는 임계점을 찾아내고 이를 바탕으로 성능 이슈에 대한 튜닝과 테스트를 반복한다.
Stress 테스트: 임계값 이상의 요청이나 비정상적인 요청을 보내 비정상적인 상황의 처리 상태를 확인하고 시스템의 최고 성능 한계를 측정하기 위한 테스트를 의미한다.
Spike 테스트: 갑자기 사용자가 몰렸을 때 요청이 정상적으로 처리되는지 그리고 그 업무 부하(Workload)가 줄어들때 정상적으로 반응하지는지를 확인하기 위한 테스트를 의미한다.
Stability 테스트 / Soak 테스트: 긴 시간 동안 테스트를 진행해서 테스트 시간에 따른 시스템의 메모리 증가, 성능 정보의 변화 등을 확인하는 테스트를 의미한다. 짧게는 한두 시간부터 길게는 며칠동안 진행하기도 한다.