loop-study
개발 공부할래?
loop-study
전체 방문자
오늘
어제
  • 분류 전체보기 (186)
    • 목표 및 회고 (25)
    • 세미나 & 워크샵 (1)
    • 교육 및 인강 (67)
      • TDD, Clean Code with Java (5)
      • ATDD, 클린 코드 with Spring (6)
      • DDD 세레나데 (3)
      • 인프라 공방 (6)
      • 이규원의 현실 세상의 TDD (19)
      • 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 (18)
      • 스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 (0)
      • 모든 개발자를 위한 HTTP 웹 기본 지식 - 김영한 (8)
      • 코딩으로 학습하는 GoF의 디자인 패턴 (1)
      • 스프링 시큐리티 완전정복 6.x (1)
    • 서적 (62)
      • 객체지향의 사실과 오해 (1)
      • 객체지향과 디자인패턴 (7)
      • 만들면서 배우는 클린 아키텍처 (3)
      • 테스트 주도 개발로 배우는 객체 지향 설계와 실천 (1)
      • 오브젝트: 코드로 이해하는 객체지향 설계 (17)
      • 리팩토링 : 코드 구조를 체계적으로 개선하여 효율적인 리팩터링 구현하기 (0)
      • 토비의 스프링 (3)
      • 엔터프라이즈 애플리케이션 아키텍처 패턴 (9)
      • 개발자의 글쓰기 (1)
      • 소프트웨어 장인 (17)
      • Real MySQL 8.0 (2)
      • JVM 밑바닥까지 파헤치기 (0)
    • 개발 & 방법론 (29)
      • Java (13)
      • TDD (5)
      • ATDD (3)
      • DDD (6)
      • 인프라 (2)
      • SQL (0)
    • 개인이야기 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 백엔드 로드맵

인기 글

태그

  • fastcampus
  • ATDD
  • 마틴 파울러
  • 모든 개발자를 위한 HTTP 웹 기본 지식
  • study
  • TDD
  • 자바
  • JUnit
  • Patterns of Enterprise Application Architecture
  • 백기선
  • 인프런
  • 현실세상의 TDD
  • java
  • 추상화
  • 테스트 주도 개발
  • 이규원
  • 장인정신
  • Test Driven Development
  • 스프링
  • 스터디
  • 넥스트스탭
  • DDD 세레나데
  • nextstep
  • 인프라공방
  • 객체지향
  • 소프트웨어 장인
  • 김영한
  • 엔터프라이즈 애플리케이션 아키텍처 패턴
  • 오브젝트
  • 조영호

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
loop-study

개발 공부할래?

jmeter 시작하기
카테고리 없음

jmeter 시작하기

2021. 3. 12. 19:13

jmeter란?

Apache 사에서 만들었으며 기능의 부하테스트 및 측정을 지원하는 Java Applicaion 오픈소스다.

JVM 설치되어 있는 환경에서 실행이 되며, 데스크톱 환경을 제공하기 때문에 직관적인 인터페이스로 쉽게 사용가능하다.

웹 서비스를 비롯하여, 파일, 서블릿 ,Perl 스크립트, Java 객체, 데이터베이스와 쿼리, FTP 서버 등 동적, 정적인 모든 자원을 테스트할 수 있다.

다양한 부하 조건에서 종합적인 성능을 분석가능하며, 성능 분석 결과를 도표로 제공하기도 한다.

 

설치 방법은 검색하면 많이 나오니(대부분 같은 방법) 생략.

 

사용방법

실행된 jmeter 는 다음과 같다.

실행화면

테스트 계획(test plan) 은 최상위 디렉토리를 나타낸다. 우측 클릭하면 다음과 같이 나온다.

추가 내역들이 존재한다.

추가 -> 쓰레드들 -> 쓰레드그룹 선택한다

 

Thread Group 은 성능을 테스트할 가상의 사용자의 집합이라 보면 된다.

 

쓰레드들의 수 : 가상의 사용자 n명을 입력한다, 숫자가 높을수록 많은 스트레스를 받을 것이다.

Ramp-up 시간 : 해당 쓰레드가 실행될 시간을 정한다. 짧을 수록 굵직하고 길수록 가늘게 진행될 것이다.

루프 카운트 : 가상의 사용자들이 몇번 반복할 것인지 정한다. 무한 체크박스를 선택하면 정해진 시간동안 무제한으로 실행된다.

 

쓰레드 그룹에 우측 클릭하자

쓰레드 그룹에 속하는 내역들이 나타난다

다양한 내역들이 존재하는데

추가 -> 표본 추출기 -> HTTP 요청을 선택한다

성능테스트 타겟 입력폼이 나온다.

 

프로토콜[http] : http 혹은 https 를 입력한다.

서버 이름 또는 IP : 성능테스트 진행할 주소(www.naver.com / www.google.com) 또는 ip를 입력한다 (로컬이라면 localhost)

포트번호: 로컬테스트라면 띄운 서버의 포트번호를 입력한다 (8080)

 

그 외에도 GET, POST 이나 파라미터까지 추가하여 설정할 수 있다.

 

이제 결과를 보기위한 지표를 추가해보자

 

쓰레드 그룹에 대한 리스너

쓰레드 그룹 -> 리스너에는 실행되는 결과에 대한 분석지표들이 존재한다. 쓰레드 그룹내에서 실행될 쓰레드에 대한 모든 결과를 볼 수 있다.

그룹이 아닌 가장 작은 쓰레드 단위로 결과 지표를 보고 싶다면

쓰레드에서 리스너를 추가해야한다.

쓰레드에 대한 리스너

테스트를 위해 쓰레드그룹에 쓰레드 여러개와 리스너들을 추가한다

 

테스트 요청 01 - 네이버를 세팅하고

테스트 요청 02 - 구글을 세팅하고 위의 녹색 실행버튼을 눌러보자. (작성자는 연속 2번 눌렀다).

구글도 네이버 결과랑 비슷하다

가장 작은 리스너에는 해당 쓰레드의 결과가 나타난다. 요청으론 실행된 주소가 나타나고 응답 데이터는 호출된 결과를 반환한다

 

실행횟수가 적어 그러지는 도표가 없다.

쓰레드그룹의 리스너는 해당 쓰레드들의 모든 결과를 볼 수 있다.

더 많은 테스트를 위해 로컬로 애플리케이션을 띄우겠다. (네이버, 구글 등에 수천번 실행하면 ip 차단 당할 수 있다.)

 

실행하고 결과를 보자

 

작은 쓰레드에 대한 결과물이다. 이전과는 다른 지표를 보여주고 있다.

 

쓰레드 그룹에 대한 총합지표이다.

실행시간이 짧게 설정해서 쓰레드마다 점 1개밖에 안 찍혔다.

하지만 실제로 로컬에서는 단 1초?만에 h2 디비를 만번 이상 조회가 되었다.

 

간단히 사용방법에 대해 알아봤다.

누구나 손쉽게 부하테스트를 할 수 있으며, 다양한 기능들이 존재하니

천천히 알아보도록 하자.

 

 

 

 

https://jmeter.apache.org/usermanual/component_reference.html#Test_Plan
https://kamang-it.tistory.com/entry/JMeterlistener-활용해서-데이터-시각화-데이터-결과-리포트-보기
http://wiki.webnori.com/pages/viewpage.action?pageId=15171659
    loop-study
    loop-study
    오늘도 공부하자

    티스토리툴바