제이미터(JMeter)로 테스트 세팅 및 사용법 정리.

2024. 3. 22. 18:13개발

반응형

 

테스트를 해본다면?

JMeter로 해보자

따라서 저희 달록 팀은 안정성이 입증되어 있고, 높은 점유율로 트러블 슈팅과 확장성이 용이하고, 초기 학습 비용이 낮아 바로 배워 사용할 수 있는 JMeter를 사용하였습니다.

라고한다.

톰캣 튜닝을 위한 달록의 서버 성능 테스트 준비 과정

 

톰캣 튜닝을 위한 달록의 서버 성능 테스트 준비 과정

이 글은 우아한테크코스 4기 달록팀의 기술 블로그에 게시된 글 입니다. 배경 우아한테크코스 5번째 데모데이의 필수 요구사항중 하나는 톰캣의 설정 중 maxConnections, maxThreads, acceptCounts 를 적절

hudi.blog

공식홈페이지 다운로드 주소.

Apache JMeter - Download Apache JMeter

 

Apache JMeter - Download Apache JMeter

Download Apache JMeter We recommend you use a mirror to download our release builds, but you must verify the integrity of the downloaded files using signatures downloaded from our main distribution directories. Recent releases (48 hours) may not yet be ava

jmeter.apache.org

 

 

바이너리 파일 5.6.3 버전을 다운받았다.(apache-jmeter-5.6.3.zip)

압축해제 후 bin 폴더에 있는 jmeter.bat 파일을 실행하면 GUI가 나타난다.

 

그리고 메모리 설정을 변경해주었다. 테스트하려면 그래야함.(안그럼 뻗음)

#기존
set HEAP=-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m
#변경
set HEAP=-Xms4g -Xmx4g -XX:MetaspaceSize=4g -XX:MaxMetaspaceSize=4g

 

테스트 플랜 만들때 참고주소

Apache JMeter란 무엇인가? (+ 사용 방법 with 성능 및 부하 테스트)

 

Apache JMeter란 무엇인가? (+ 사용 방법 with 성능 및 부하 테스트)

Apache JMeter Apache JMeter는 서버가 제공하는 성능 및 부하를 측정할 수 있는 테스트 도구이다. JMeter는 순수 Java 애플리케이션 오픈소스이며 서버나 네트워크 또는 개체에 대해 과부하를 시뮬레이션

jaehoney.tistory.com

그리고 헤더를 추가하는경우 Header Manager를 추가해야한다.

 

테스트를 위한 요청 화면에서 조정가능 한 것을 확인한다.

Number of Threads(Users) 는 말그대로 요청자 수를 뜻함.(동시요청자수)
Ramp-up peired는 요청이 몇초동안 지속될지를 뜻함.
Loop Count는 몇번 요청할지 뜻함.

 

다른사람은 이렇게 말한다

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

스택오버플로우에서는 다음과 같이 설명한다.

Ramp-up Period - The time frame (in seconds) for all requests to start. All the threads specified in the Number of Threads input will start within Ramp-up period.

100 threads and 100 seconds ramp-up: each second JMeter will start 1 Thread until all threads are started by the time the 100 seconds are up.

100 threads and 50 seconds ramp-up: each second 2 Threads are started.

100 threads and 200 seconds ramp-up: every 2 seconds1 Thread is started.

JMeter understanding ramp-up

 

JMeter understanding ramp-up

This is the configuration of my test plan thread properties: Number of Threads (users): 100 Ramp-up Period (in seconds): 10 Loop Count : Forever Delay thread creation until needed: No Scheduler: N...

stackoverflow.com

 

내가볼때 특정 기간동안 균등하게 유저수가 늘어나고 최종적으로는 해당유저가 수 만큼 요청이 들어가는것 같다.

그리고 만약 한번에 많은 요청이 가기를 원해도 Ramp-up period가 지정되어있다면 그 수가 지정된다고 한다.(100개씩 전송됨)

그래서 한번에 모든 요청을 원하면 0으로 하라고 한다.

기타

  • 리포트 기능이 경우 Java 8이 윈도우 시스템 환경변수로 잡혀있어야지 정상동작 하는듯 보인다.
    (Java17을 기준으로 잡아뒀더니 warning이 발생하면서 동작 안함.)
    • Jmeter 기준으로 리포트 만들어주는 기능이 있다.
  • 테스트 결과 파일 생성
    • 생성 및 파일 연결을 안하는 경우 프로그램 종료시 테스트결과가 날아간다.
    • 테스트 결과를 csv파일로 지정해서 만들어 둬야 이후 리포트로 출력이 가능하다.
      (테스트 수행전 꼭 확인이 필요하다.)
반응형