본문 바로가기

TIL(Today I Learned)

TIL-231106(성능테스트 도구 선택)

📝오늘 공부한 것

  • '행동대장' JMeter 테스트
  • 커리어톤 참여
  • 프로그래머스 문제풀기

 

📌 성능 테스트 도구 선택하기

다양한 부하테스트 도구들이 있었는데, 그중 JMeter, k6, nGrinder의 장단점을 비교해보며, 어떤 도구를 선택할지 결정하고자 한다.

 

📍 Apache JMeter

 - 부하 테스트 및 성능 측정을 위해서 개발된 100% 순수 자바 애플리케이션

 - HTTP를 사용하여 사이트의 부하를 테스트 할 수 있으므로 정적이거나 동적인 자원(파일, 서블릿, 자바객체들, 데이터베이스 등)에 대해서 테스트하는데 사용

 

장점

  • 무료로 사요이 가능하다.
  • 아파치에서 개발한 오래된 툴로, 레퍼런스가 많다
  • 다양한 프로토콜 지원한다.
  • GUI, Email, DB, SSL 등 다양한 기능과 플러그인을 제공한다.

단점

  • 결과를 확인할 때 리스너로 만들어 보는데 모니터링이 불편하다.
  • 쓰레드 기반이라 성능제약이 있을 수 있다.

 

📍 nGrinder 

네이버에서 만든 오픈 소스

 

  • 장점
    • 설치만 하면 사용하기 쉽다.
    • 예약, 모니터링, ramp up, 스크립트 기능을 지원한다.
    • docker에서 사용 가능하다
  • 단점
    • agent와 controller를 각자 실행해야된다.
    • Thread 기반으로 구현되어 있어 성능과 동시성에 대해 제한이 있다고 한다.
    • 그래프를 합치지 못해서 데이터 시각화하는데 불편함이 존재한다.

 

📍 k6

Grafana Labs에서 만든 오픈소스 부하 테스트 도구

 

장점

  • 시나리오 기반 테스트가 가능하다.
  • 동시 접속자 수, 요청 간격, 최대 처리량 등 부하 조정이 가능하다.

단점

  • 클라우드로 테스트 실행 시 50회 이전까지는 무료이지만, 그 이후로는 유료이다. (CLI로 실행하면 무료)
  • Javascript로 코드를 작성해야 한다.

 

 

 

테스트 타입을 지원하는지, 프로토콜을 지원하는지, 레퍼런스가 많은 지, GUI가 제공이 되는지, 비용은 어떤지 등의 기준들을 통해 도구를 선택해보았다.

테스트 타입을 지원하는지 : JMeter, k6, nGrinder
프로토콜을 지원하는지 : JMeter, k6, nGrinder
레퍼런스가 많은 지 : JMeter, k6, nGrinder
GUI가 제공이 되는지 : JMeter, k6, nGrinder
비용은 어떤지 : JMeter, k6, nGrinder

⭐ 최종적으로는 설치와 사용방법이 쉽고, 최근까지 유지보수가 이루어지고 있으며 레퍼런스들이 많은 Apache JMeter를 선택하였다.

 

 

 

 

 

 

 

 

 

 

 

 

References :

https://tech.madup.com/performance_test_tool/