JMeter 부하테스트

Jung·2021년 12월 13일
1

TIL

목록 보기
63/77
post-thumbnail

부하테스트

부하테스트는 성능 테스트와 성능 튜닝이 어느 정도 완성되면 해당 소프트웨어 혹은 서비스를 대표할 수 있는 기능을 선정하여 해당 하드웨어 및 네트워크 환경에서 얼마나 많은 사용자가 동시에 사용할 수 있는지 테스트하는 것을 말한다.

서비스가 로직적으로 테스트가 잘 진행되어져도, 실제 상황에 대해서 다량의 인원이 여러 요청을 하는 경우에 대한 부하의 한계를 파악하기가 힘들다.

실제로 그러한 장애 상황이 오는 것을 대비하기 위해서라도 서비스의 부하테스트를 해보는 작업이 필요하다.

참고
https://velog.io/@groovejumat/%EB%B6%80%ED%95%98%ED%85%8C%EC%8A%A4%ED%8A%B8%EB%A5%BC-%ED%95%98%EA%B8%B0%EC%9C%84%ED%95%9C-2%EA%B0%80%EC%A7%80-%EB%8F%84%EA%B5%AC

JMeter로 부하테스트를 진행해보자!
https://jmeter.apache.org/download_jmeter.cgi 에서 zip 파일을 받아 압축을 풀어보자.

압축을 풀고 터미널에서 apache-jmeter 디렉토리의 bin으로 들어가서 $ ./jmeter 명령어를 입력한다.

입력하면 JMeter가 실행된다.

Number of Threads: 쓰레드 개수, 요청을 발생시킬 클라이언트 수.

Ramp-Up Period: 해당 쓰레드 그룹의 진행 시간. 전체 쓰레드가 전부 실행되는 데까지 걸리는 시간.

Loop Count: 해당 쓰레드 그룹의 반복 횟수.


실행

HTTP Request

Thread Group에서 마우스 우클릭 하고 Add -> Sampler -> HTTP Request

Protocol[http]

  • 디폴트는 http. 만약 https로 접속할 경우 https.

Server Name or IP

  • 서버 도메인 주소 or 서버 IP 주소

Port Number

  • 포트 번호

Path

  • api 호출하는 경로

HTTP Request에 메소드와 호출하려는 uri를 입력하고 실행하면 해당 uri에 대한 부하 테스트가 진행된다.


결과 확인

View Results Tree

결과를 상세히 보고 검색할 수 있다.


Summary Report

결과를 요약해서 보여준다.

  • Label: 우리가 사용했던 request의 이름을 기준으로 모은다. 따라서 다르게 집계하고 싶다면 이름을 반드시 다르게 한다.
  • Samples: requset 수
  • Average: Sample Time의 평균
  • Min: Sample Time의 최소
  • Max: Sample Time의 최대
  • Std. Dev.: Sample Time의 표준편차
  • Error %: 에러율
  • Throughput: 시간당 처리량
  • Received KB/sec: 시간당(sec) 받은 데이터(KB)
  • Sent KB/sec: 시간당(sec) 보낸 데이터(KB)
  • Avg. Bytes: 평균 바이트

Response Time Graph

응답에 걸린 시간을 그래프로 보여준다.

참고
https://luxtar.tistory.com/8
https://hayden-archive.tistory.com/398
https://kamang-it.tistory.com/entry/JMeterlistener-%ED%99%9C%EC%9A%A9%ED%95%B4%EC%84%9C-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%8B%9C%EA%B0%81%ED%99%94-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EA%B2%B0%EA%B3%BC-%EB%A6%AC%ED%8F%AC%ED%8A%B8-%EB%B3%B4%EA%B8%B0

profile
97kim.github.io

0개의 댓글