jmeter

김민재·2024년 12월 19일
0

jmeter

제이미터는 성능 테스트와 로드 테스트를 위한 오픈 소스 소프트웨어이다.

제이미터의 특징

  1. 오픈 소스 - apache에서 제공하는 무료 오픈 소스 소프트웨어이다.
  2. 멀티 프로토콜 지원 - http,https,ftp,tcp 등의 프로토콜을 지원
  3. 플랫폼 독립성 - java 기반으로 윈도우,맥,리눅스 등의 다양한 운영체제에서 실행이 가능
  4. GUI and CLI 제공 - 직관적인 인터페이스로 스크립트를 생성하여 결과를 시각적으로 확인할 수 있다.
  5. 확장성 - 플러그인을 통해서 기능 확장이 가능하다.(jmeter manager)

제이미터의 구성요소

  1. 테스트 플랜 - jmeter 테스트의 최상위 요소, 테스트 구성과 시나리오를 정의한다.
  2. 스레드 그룹 - 테스트 사용자(스레드)의 수, 실행 시간, 반복 횟수 등을 설정
  3. 샘플러 - 특정 요청을 정의(http,query,tcp 등)
  4. 리스너 - 테스트 결과를 시각화 하고 분석한다.
  5. 컨트롤러 - 테스트 로직을 제어한다. (로직 컨트롤러 - 조건,반복 / 타이머 - 요청 간 대기 시간 설정)
  6. 프로세서 - 프리프로세서(요청 전 데이터를 준비), 포스트 프로세서(응답 데이터를 처리)
  7. config 요소 - 요청에 필요한 기본 설정(기본 URL, 파라미터 등) 제공
  8. 타이머 - 요청 간의 간격을 설정

제이미터는 성능,로드,스트레스,기능 테스트로 사용을 하는데 우리 서버에서는 로그인에 대한 부하에 대해서 확인하기 위해서 스트레스 테스트를 하기로 했다.

시나리오

간단하게 30000명이 연속적으로 계속 로그인을 시도하는 걸 로컬 서버에서 테스트를 해보고자 했다.

해석

요청 수: 총 30,612개의 요청이 실행되었습니다.
평균 응답 시간: 9,943ms로, 비교적 높은 응답 시간을 보여줍니다.
최소 응답 시간: 4ms로 빠른 응답이 가능함을 나타냅니다.
최대 응답 시간: 65,659ms로, 매우 높은 값이 기록되었습니다. 이는 부하에 따라 응답 시간이 크게 증가했음을 의미합니다.
백분위수:
90% 요청의 응답 시간이 35,786ms 이내에 처리되었습니다.
95% 요청은 54,335ms 이내에, 99% 요청은 64,418ms 이내에 처리되었습니다.
성공률: 71.965%로, 약 28%의 요청이 실패했습니다. 이는 서버 또는 애플리케이션의 성능 문제가 있을 가능성을 나타냅니다.
처리량: 초당 194.32개의 요청이 처리되었습니다.

우리 인증 서버에서는 30000명의 요청에 대한 스트레스 테스트의 결과는 상당히 좋지 않다. 는 결과가 나왔다.

피드백

안녕하세요 사람이 아닙니다.
이번 제이미터와 포병 둘다 만져보면서 느꼈던 점은 둘다 정말 정보가 없다는 점이었다.
둘다 주로 하는 일이 http 요청 처리에 대한 일이었고 이를 tcp로 바꾸면서 처리할 때에 대한 정보는 포병 쪽에서는 정말 하나도 없을 정도로 찾아내지 못했다.. (변명임)

제이미터를 선택하고 파보면서 같이 공부하는 사람에게도 물어봤지만 비트를 직접 찍어내서 넣는 방식을 채택을 해서 사용을 하다보니까 msa로 연결되는 모든 서비스 서버에 테스트를 할려고하면 일일이 모든 걸 하나하나씩 비트를 찍어내서 그때마다 모든 과정을 전부다 테스트를 해야하는 정말 엄청난 시간이 걸리는 걸 직접 하거나...

모든 코드를 자바를 배우면서 0부터 다시 만들어야하는 말도 안되는 러닝커브를 거치면서 만들거나...

둘 다 제대로 하지도 못했고 이번 프로젝트가 끝나고 조금 더 공부해볼 생각이다.

profile
ㅇㅇ

0개의 댓글