본문 바로가기
공부/Jmeter

JMETER 테스트의 종류와 목적

by 고구밍 2022. 6. 17.

물물박사 프로젝트

물물박사에서 사용된 테스트는 스파이크 테스트 (Spike Test)입니다.

스파이크 테스트 일시에 부하가 몰릴때 시스템이 버틸 수 있는지 체크하는 것으로, 

-> 수강신청 시스템과 같이 고객들이 몰리는 상황을 가정해 보았습니다. 

 

https://goguming2.tistory.com/111?category=946205 

 

JMETER 테스트 자료 정리

 

goguming2.tistory.com

 

 

부하 테스트

거래내역을

1분간 5000명이 2회 조회를 요청하였을 경우 아래와 같은 테스트가 나옵니다.

-> 즉 1초당 약 166.6회 API조회를 하는 것이다.

 

평균 API 처리속도 : 0.042초

오류율 : 0.01%

평균 바이트 수 : 6886.6 Byte

 

Ramp-Up Period :

쓰레드를 Ramp-Up Period시간동안 실행해라는 의미이다.

단 균등하게 시간을 나눠서 실행하려고 노력한다. 예를 들어 Nomber of Threads가 10인데 Ramp-Up Period가 60이면 10개의 쓰레드가 6초간격으로 동작하려고 한다. 근데 그렇게 안될 수도 있다.

 

TPS :1초에 처리할 수 있는 트랜젝션 수를 의미하며 성능 테스트의 중요한 지표

 

 

[ 성능 테스트 종류 ]

부하 테스트(Load Test)
목표 성능 도달 여부를 측정하기 위함(realse할때 사용)
-> 방법은 여러가지가 있지만 부하를 서서히 높이는 방법을 주로 사용!


ex)
예를 들어 출결사이트의 경우, 최소 동시접속 80명(출결인원)까지는 가능해야 함
스파이크 테스트(Spike Test)
일시에 부하가 몰릴때 시스템이 버틸 수 있는지 체크
(갑자기 사용자가 급증했을 때 서버가 견디지 못하는 경우를 많이 봤다!)

ex)
수강신청 시스템처럼 일시에 부하가 몰릴것을 가정했을때, 이때 부하 가정 시나리오를 수강신청 모델을 사용한다.
신뢰성 테스트(Stress Test)
한계 부하가 걸린 상태에서 시스템의 모든 기능들이 어느 정도 운용되는지테스트
하는 것이며이 결과는 SW품질 특성 중 '신뢰성'을 나타내는 지표로 활용됨


미션 크리티컬한 시스템(예를 들어 운송수단, 산업 등등)에서는필수적으로 받아야 하는 시스템이다.
안정성 테스트(Stability Test)
장시간 테스트(짧게는 한두시간, 길게는 1~2일)를 하면서 서버의 성능을 테스트한다.

출처: https://buildabetterworld.tistory.com/180 [Seungyeup's blog:티스토리]

 

 

 

 

주로 알려진 성능 테스트의 목적은

1. 목표 성능 도달 여부 확인

2. 한계 성능 측정

3. 부하 스트레스 하에서 기능 안정성 확인 이다.

 

이를 위해서 Jmeter를 통해 측정하는 항목 중 대표적인  키워드는 아래와 같다.

 

트랜젝션(Transaction) : Request + Response 가 하나의 트랜젝션을 이룬다. ( 사용자 수 <= 트랜젝션 수 )
  • 화면 조작을 통한 Request발생 ~ Response를 받기까지의 동작을 의미
TPS(Transaction Per Sec)
  • 1초에 처리할 수 있는 트랜젝션 수를 의미하며 성능 테스트의 중요한 지표
응답시간(Response Time) : 사용자가 요청을 보낸 시점부터 결과가 보여지기까지 시간
  • Request~최종화면 표시까지 걸리는 시간이며 영향을 주는 변수들이 많아 지표로서는 좋지 않으나, 사용자들이 직접 체감하는 지표이므로 같이 측정을 해 준다.

 

  1. 그 외에 추가적으로 알아두면 좋은 용어들은 다음과 같다.

출처: https://buildabetterworld.tistory.com/180 [Seungyeup's blog:티스토리]

 

 

[ 관련 도구 ]

1. LoadRunner ( 성능테스트 왕좌, 기업 단위 )
2. Locust (개발자 단위)
3. nGrinder ( 국내 오픈소스 )
4. JMeter ( 아파치 재단에서 LoadRunner를 따라잡이 위해 만든 오픈소스 )

 

[ JMeter 의 장단점 ]

그렇다면 JMeter 의 장단점은 무엇이 있을까? 

장점은 ? 
    - 분산환경 지원
    - 스크립트 레코딩
    - DB, HTTP 등 각종 프로토콜 제공

 

단점은 ? 
    - 분산환경 설치가 쉽지 않음
    - 프록시 서버 기반 스크립트 레코딩이 불편하다.

출처: https://buildabetterworld.tistory.com/180 [Seungyeup's blog:티스토리]

 


 

응답 데이터는 어떻게 들어오고 있을까요?

성공적으로 API요청이된 응답메시지는 다음과 같은 응답Body를 담고 있습니다.