ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 성능 테스트. JMeter
    BackEnd/Tests 2022. 2. 14. 22:47
    반응형

      Apache JMeter는 성능 측정 및 부하 (load) 테스트 기능을 제공하는 오픈 소스 자바 애플리케이션입니다. 성능 테스트 툴로는 JMeter, Gatling, nGrinder 등이 있으며 TPS(Traffic per second)을 측정하여 처리량(Throughput)을 확인하기 위해 사용합니다. 이번 글에서는 JMeter를 다루고, 다음 글에서 nGrinder에 대해 다루겠습니다. Gatling은 링크된 레퍼런스를 참고하시면 됩니다.

     

    JMeter 특징

    • Web(HTTP, HTTPS), SOAP / REST WEB Service, FTP, DB, Mail 등 다양한 형태의 애플리케이션 테스트를 지원합니다.
    • CLI를 지원하여 CI 또는 CD 툴과 연동할 때 편리하며, UI를 사용하는 것보다 메모리 등 시스템 리소스를 적게 사용합니다.

     

    주요 개념

    • Thread Group: 한 쓰레드 당 유저 한명
    • Sampler: 어떤 유저가 해야 하는 액션
    • Listener: 응답을 받았을 때 할 일 (리포팅, 검증, 그래프 그리기 등)
    • Configuration: Sampler 또는 Listener가 사용할 설정 값 (쿠키, JDBC 커넥션 등)
    • Assertion: 응답이 성공적인지 확인하는 방법 (응답 코드, 본문 내용 등)

     

    JMeter 설치

      성능 테스트 툴을 설치하는 서버는 다수의 요청을 생성하여 요청하기 때문에 가급적 성능이 좋은 서버를 사용하며, 애플리케이션이 운영되는 서버와 분리하여 설치해 줍니다. JMeter도 리소스를 사용하고 애플리케이션도 리소스를 사용하기에 동일 서버에 설치 시 성능이 제대로 측정되지 않을 수 있습니다.

      설치URL: https://jmeter.apache.org/download_jmeter.cgi

      apache-jmeter-5.4.3.zip 파일을 다운받아 압축을 풉니다. apache-jmeter-5.4.3 폴더 하위 bin/jmeter를 실행합니다.

    $ ./jmeter

     

    JMeter 사용

      성능 측정 시에는 애플리케이션 용도에 따라 Thread Group의 기준을 설정하고 10분 이상 수행하여 TPS 및 에러 발생 비율을 확인해야 합니다.

    Thread Group 만들기

    • Number of Threads: 쓰레드 개수
    • Ramp-up period: 쓰레드 개수를 만드는데 소요할 시간
    • Loop Count: infinite 체크 하면 위에서 정한 쓰레드 개수로 계속 요청. 값을 입력하면 해당 쓰레드 개수 X 루프 개수 만큼 요청.

    Sampler 만들기

    HTTP Method를 선택하고 Path를 지정해 줍니다. 파라미터 필요 시 아래 그리드에 추가합니다.

    Listener 만들기

    • View Results Tree: 요청 단위 결과 확인
    • Summary Report: 요약 리포팅
    • Aggregate Report: 집계 리포팅
    • Response Time Graph: 응답 시간 그래프
    • ...

    1초에 10개 요청 시 처리량이 9.4/sec인 것을 알 수 있습니다.

     

    CLI 사용하기

    jmeter -n -t 설정 파일 -l 리포트 파일
    반응형

    'BackEnd > Tests' 카테고리의 다른 글

    기타 테스트. ETC  (0) 2022.02.19
    아키텍처 테스트. ArchUnit  (0) 2022.02.19
    운영 이슈 테스트. Chaos Monkey  (0) 2022.02.19
    성능 테스트. nGrinder  (0) 2022.02.15

    댓글

Designed by Tistory.