본문 바로가기
프로젝트/RanDrive

기능 개선(JMeter)

by HWK 2023. 10. 30.

참고: https://effortguy.tistory.com/164

         https://jaehoney.tistory.com/224

Apache JMeter는 서버가 제공하는 성능 및 부하를 측정할 수 있는 테스트 도구이다. JMeter는 순수 Java 애플리케이션 오픈소스이며 서버나 네트워크 또는 개체에 대해 과부하를 시뮬레이션하여 강도를 테스트하거나 다양한 부하 유형에서 전체 성능을 분석하는 데 사용할 수 있다.

비슷한 부하테스트 도구로는 Apache Benchmark, Ngrinder, Pinpoint, Gatling등이 있다.

다음과 같은 프로토콜/서버를 테스트할 수 있다.

  • - SOAP / REST 웹 서비스
  • - JDBC
  • - JMS - Message-oriented middleware (MOM)
  • - Native commands or shell scripts- Java Objects
  • - TCP
  • - Mail - SMTP(S), POP3(S) and IMAP(S)
  • - LDAP
  • - FTP

주요 개념

  • Thread Group: 몇 개의 쓰레드가 동시에 요청을 보내는 지
  • Sampler: 어떤 유저가 해야 하는 액션
  • Listener: 응답을 받았을 때 어떤 동작을 취하는 지  (검증, 리포트, 그래프 그리기 등)
  • Configuration: Sampler 또는 Listener가 사용할 설정 값 (쿠키, JDBC 커넥션 등)
  • Assertion: 응답 결과의 성공 여부를 판단하는 조건 (응답 코드, 본문 내용 등)

설치 참고는 
https://hojun-dev.tistory.com/entry/JMeter-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0

파일 설정 참고는
https://jaehoney.tistory.com/224


테스트 할때는 테스트 할 환경 꼭 켜놓고
만일 일반 네비게이션 기능을 한다 치면
http request를 다음과 같이 설정

Listner는 다음과 같이 추가했고,
아직은 익숙하지 않아서인지 View Result in Table이 가장 눈에 잘 익는 것 같다.

Table 열 데이터가 의미하는 것은 아래와 같고 다음 사이트에서 참고했다. https://kamang-it.tistory.com/607


Table 열 데이터

Sample - 그냥 ID번호다. 이 번호를 보고 몇번째로 보는 부하인지 알 수 있다.

Start Time - 보내기 시작한 시간으로 ms단위까지 나온다.

Thread Name - 쓰레드 그룹 이름

Label - 보낸 request의 이름

Sample Time(ms) - Load Time, Elapsed Time, Response Time이랑 같은 뜻이다. 요청 시작 시점부터 응답 종료 시점까지의 시간을 의미

Status - 말그대로 응답상태를 확인할 수 있다.

Bytes - 응답 데이터 바이트

Sent Byte - 요청 데이터 바이트

Latency - 지연 속도를 의미하는데 요청 시작 시점부터 응답 시작 시점까지의 시간을 의미

Connect Time(ms) - TCP Handshake를 이용해 연결하는 시간(그냥 TCP연결시간)

 

Table footer 데이터

No of Samples - No는 아니다라는 뜻이 아니라 number라는 뜻, 처리중인 데이터 수를 의미

Latest Sample - 가장 마지막 Sample Time

Average - 생략되있는데 Sample Time 평균

Deviation - 생략되있는데 Sample Time의 표준편차