Server

[Jmeter]부하 테스트_Window 기준

Raconer 2023. 5. 11. 23:18
728x90

사용 계기

백엔드 개발을 하면서 부하 테스트는 필수적인 작업 중 하나입니다.
하지만 보통 Postman과 같은 툴로는 원하는 결과를 도출하기 어렵다는 것을 느꼈습니다.
그러던 중 우연히 알게 된 Jmeter은 DB에 접속하여 SQL문으로 바로 부하테스트를 할 수 있을 뿐만 아니라 RestAPI 테스트를 요청할 수 있는 기능들이 있었습니다.
여러 가지 데이터들로 결과를 얻을 수 있기 때문에, 좀 더 상세한 결과를 얻고자 할 때 매우 유용한 툴입니다. 이번에는 Jmeter을 처음 사용해보았지만, 기초적인 사용 방법을 정리해보고자 합니다.

JMeter란?

JMeter은 Apache 소프트웨어 재단에서 개발 및 유지보수하는 오픈 소스 부하 테스트 도구입니다.
Java로 작성되었으며, 다양한 프로토콜 (HTTP, FTP, JDBC 등) 및 서버 유형 (웹, 데이터베이스, 애플리케이션 서버 등)을 지원하여 서버의 성능을 측정하고 부하를 테스트하는 데 사용됩니다.

JMeter은 사용하기 쉬운 GUI(그래픽 사용자 인터페이스)를 제공하며, 다양한 기능들을 지원합니다.
예를 들어, 여러 스레드를 사용하여 동시에 여러 사용자를 시뮬레이션할 수 있으며, 각 스레드에서는 특정 행동을 수행할 수 있습니다.
또한, JMeter은 특정 시간 동안 부하를 유지하거나, 최대 부하에서 성능을 측정하는 등의 다양한 부하 테스트 방법을 제공합니다.

JMeter은 오픈 소스이므로 무료로 다운로드 및 사용이 가능하며, 사용자 커뮤니티가 활발하여 다양한 플러그인 및 익스텐션도 존재합니다. > 이러한 기능들을 활용하면 더욱 다양하고 복잡한 테스트 시나리오를 구성할 수 있습니다.

JMeter 설치 & 실행 방법

  1. JMeter 설치 홈페이지 접속
  2. 최신 버전 확인 > Binaries > apache-jmeter-5.5.zip 다운로드
  3. ZIP파일 압축 풀기
  4. bin 폴더 이동
  5. JMeter 배치 파일 실행

손쉬운 사용

  1. JMeter 배치 파일 오른쪽 클릭
  2. 바로가기 아이콘 생성
  3. 원하는 위치에 놓고 사용

임시 예제 생성

외부 블로그 따라 실행 하였습니다.
실행 순서 & 설명을 동시에 작성 하겠습니다.

1. Thread Group을 생성

생성된 그룹들이 하나하나의 Request가 됩니다.

  • Action To Be Taken after a Sampler Error : 오류가 발생했을 때 JMeter가 취해야 할 조치
    • Continue
      • 샘플러 오류가 발생해도 테스트를 계속합니다. 이 경우 오류가 발생한 샘플러는 결과 보고서에 실패한 것으로 표시됩니다.
    • Start Next Thread Loop
      • 샘플러 오류가 발생하면 해당 스레드 루프를 종료하고 다음 루프를 시작합니다.
    • Stop Thread
      • 샘플러 오류가 발생하면 해당 스레드를 중지합니다.
    • Stop Test
      • 샘플러 오류가 발생하면 모든 스레드를 중지하고 테스트를 종료합니다.
    • Stop Test Now
      • 샘플러 오류가 발생하면 즉시 모든 스레드를 중지하고 테스트를 종료합니다.
  • Ramp-Up Period
    • 스레드가 시작되는 시점부터 다음 스레드가 시작되는 시점까지의 시간 간격입니다.
    • 이 값을 증가시키면 점진적으로 부하를 증가시킬 수 있습니다.
  • Loop Count
    • 스레드가 수행하는 루프의 횟수를 설정합니다.
    • 이 값을 증가시키면 스레드가 더 많은 작업을 수행할 수 있습니다.
  • Scheduler Configuration
    • 스레드 실행을 예약할 수 있습니다.
    • 이를 사용하면 특정 시간대에 부하를 집중시켜서 테스트를 수행할 수 있습니다.
  • Duration (seconds)
    • 스레드가 실행될 총 시간을 설정합니다.
    • 이 값을 변경하면 스레드가 수행하는 시간을 조정할 수 있습니다.
  • Startup Delay (seconds)
    • 스레드가 시작되기 전에 대기하는 시간을 설정합니다.
    • 이를 사용하면 스레드 시작 간격을 조정할 수 있습니다.
  • Shutdown Timeout (seconds)
    • 스레드가 중지되기 전에 대기하는 시간을 설정합니다.
    • 이를 사용하면 스레드가 정상적으로 종료될 때까지 기다릴 수 있습니다.

2. Http Request 생성


위와 같이 생성 하면 Request 설정 창이 뜬다.
우클릭후 하나 씩 보면 Sampler에 JDBC도 있는데 이는 DB 바로 접속해서 Query 과부하를 테스트 할수잇게 하는도구이다.
다만 JDBC는 접근 할때 필요한 lib가 필요하다.
이는 나중에 올리도록 하겠습니다.
그리고 이미지에 View Result Tree(Test Plan > 우클릭 > add > Listener)가 있는데 이는 Request 한 결과들을 출력해준다.
꼭 이뿐만 아니라 자세 하기 까진 아니여도 하나 씩 클릭 해보면서 어떤건지 확인해 보면 좋은거 같다.

후기

JMeter를 처음 사용했지만, 기본적인 내용을 작성해봤습니다.
처음 사용하는 분들은 하나씩 눌러가며 테스트하는 것이 좋을 것 같습니다.
시나리오를 만들어가는 것도 중요하지만, 현재 단계에서는 각 기능들이 어떤 동작을 하는지 확인하는 것이 중요합니다.
JMeter의 기본적인 사용 방법을 숙지하면 시나리오 작성에도 도움이 될 것입니다.

728x90

'Server' 카테고리의 다른 글

CAP 이론  (0) 2024.02.03
낙관적인락(Optimistic Locking) / 비관적인(Pessimistic Locking)  (0) 2023.08.09
Docker 공부 하면서 주로 사용하는 명령어  (0) 2023.04.16
도커 사용법[2]  (0) 2023.04.16
도커 사용법[1]  (0) 2023.04.16