본문 바로가기
프로그래밍/JAVA

Apache JMeter 5.2 설치 / 설정

by 소나기_레드 2023. 8. 31.
반응형

JMeter 를 사용하여 개발한 서비스의 스트레스 테스트를 할 수 있도록, 설치부터 설정까지 내용을 정리.

로컬 PC에서 배달포스 서버 서비스의 스트레스 테스트를 진행한 내용을 기준으로 작성.

 

 

  • 설치 / 실행
    • 사전 확인 사항 : Java 1.8 버전 이상 설치 필요

 

  • 프로그램 다운로드 및 설치
    • 다운로드 사이트의 Binaries에서 Zip 타입의 최신 버전을 다운로드 후, 원하는 곳에 압축 해제.
      파일명 : apache-jmeter-5.2.zip
    • 플러그인 매니저 다운로드 : jmeter-plugins-manager-1.3.jar 를 다운로드 받아, JMeter설치폴더/lib/ext 폴더에 복사.
      • 설치 확인 방법 : JMeter 를 실행한 후, 메뉴의 Options → PlugIns Manager 가 보이면 설치 완료된 것임.

  • 프로그램 실행
  • 압축 해제한 폴더의 bin 폴더 ( 예 - D:/apache-jmeter-5.2/bin ) 안에 있는 jmeter.bat 파일을 실행

    • 실행하면 cmd창과 JMeter UI 가 보임. cmd창 종료시 프로그램도 같이 종료됨.

 

 

  • 설정 
    • JMeter 기본 개념 및 동작 방식
      • 기본 개념
        • Thread Group : 테스트 할 내용들의 묶음. 여러 개의 Sampler 와 Listener 로 구성될 수 있음.
        • Sampler : 테스트할 요청 내용. 사용자의 행동을 대행
        • Listener : 요청에 대한 응답을 받아 데이터/그래프/리포트 등 처리 결과 표시
      • 동작방식

    • 새로운 테스트 플랜 생성 (File -> New)

    • Thread Group 생성

    • Thread Group 설정

      • 성능에 가장 중요한 부분
      • 여러 개 생성해서 서비스 분야별로 정리하거나 홈페이지별로 정리해서 사용.

      • Action to be taken after a Sampler error 
        • 실행 중에 오류가 발생할 경우 처리 방법 선택. 기본값 사용.
      • Thread Properties : 루핑 방법
        • Number of Threads (users) : 한 번에 생성할 스레드 수, 즉 동시 접속자 수. 이 값이 커질수록 서버에 대한 부하도 커짐.
        • Ramp-up period (seconds) : 한 번에 생성한 스레드의 실행을 완료 할 시간. 1초로 설정하면 users에 설정한  스레드를 동시에 생성.
        • Loop Count : 위에 설정한 users 가 반복할 횟수
        • 예 ) users : 100,  seconds : 1, Count : 10  로 설정한 경우.  1초에 100개의 스레드를 실행하고, 그 횟수를 10회 반복한다. 즉, 10초 안에 1,000개의 스레드가 수행됨.
          • 총 스레드 수 : users * seconds * count
          • 총 수행 시간 : seconds * count 
    • Sampler 추가

  • HTTP Request 
    • 웹 요청에 대한 정의

  • Web Server 부분에는 서버 접속 정보를 적는다.
    • Protocol : 통신 프로토콜을 입력. 예) http 또는 https
    • Server Name or IP : 서버 접속 정보를 입력. IP 를 넣거나, 도메인 정보를 입력. http 나 https 는 제외하고 입력.
    • Port Number : 서비스 포트를 입력.  예) 80
  • HTTP Request 부분
    • Method : 요청 방법을 선택. get, post 등
    • Path : 요청할 서비스의 IP 정보를 제외한 전체 경로. 예) http://127.0.0.1:8080/insert/insertData.jsp  인 경우 /insert/insertData.jsp 만 입력
    • Parameter 탭 : 파라미터로 넘겨 줄 값을 정의. 하단의 Add 버튼을 눌러서 추가 후 값을 입력.
    • Body Data 탭 : Post 인 경우, 보낼 데이터를 입력. 예) JSON 데이터
    • File Upload 탭 : 파일을 전송할 때 사용. 직접 입력하거나, 파일을 찾아서 입력할 수 있다.
  • Listener 추가
    • Listener : 테스트 결과를 표나 그래프로 표시
    • View Results Tree / Summary Report / Graph Results 등을 많이 사용
    • 아래와 같이 추가하려고 하는 Thread Group을 선택한 후, Listener 를 선택하여 추가.
    • Listener 를 추가한 후, 상단 메뉴바의 초록색 삼각형 버튼을 누르면, Thread Group 에 설정한 내용으로 HTTP Request 를 실행한다.
    • 결과를 지우고 싶다면, 상단 메뉴바의 빗자루1개(현재 Listener) 또는 빗자루2개(전체 Listener) 그림의 버튼을 클릭.

    • View Result Tree
      • 요청 결과 데이터를 표시
      • Sampler result 탭 : HTTP Request 에서 요청했던 내용에 대한 결과
      • Request 탭 : 요청한 내용 표시
      • Respose Data 탭 : 결과 데이터 표시
      • 테스트 중 오류가 발생하는 경우, 오류처리된 요청이 붉은 색으로 표시된다.
      • 만약 Reponse data가 빈화면으로 나오면 ( JMeter response data empty )jmeter.save.saveservice.response_data = true
      • jmeter.save.saveservice.samplerData = true
      • jmeter.porperties 파일을 에디터로 켜서 아래부분이 false로 되있다면 true로 변경해주세요.
      • 인터넷으로는 접속이 되는데 JMater으로는 404에러가 발생한다면JMeter에서는 The Group 하위에 add > Config Element > HTTP Header Manager 추가하신후 해당하는 Header를 넣어주시고 테스트해보시면 될수도있습니다.
      • 해당 url로 접속해서 크롬 개발자모드로 header부분을 확인해주시고

 

 

    • Summary Report
      • 요약 리포트
        • Label : HTTP Request 의 NAME 속성이 표시됨.
        • #Samples : 요청한 횟수
        • Average : 평균 응답시간 (ms)
        • Miin : 최소 응답시간 (ms)
        • Max : 최대 응답시간 (ms)
        • Error : 에러율
        • Throughput : 초당 처리 가능한 요청 횟수

    • Graph Result
      • 결과 데이터를 그래프 형식으로 표시

  • JMeter는 그 초기 목적과 달리 다양한 테스트를 위해 확장되고 있으므로, 여러 목적으로 사용 가능. JDBC, Java Request, JUnit, FTP 등
    • JavaRequest 테스트 : 순수 자바 어플리케이션을 만들고 있는데, 별도의 테스트 툴이 없어서 힘든 경우
    • JUnit 테스트 : 어플리케이션 테스트를 위해 만든 JUnit Test Case의 부하 테스트를 원하는 경우
    • FTP 테스트: FTP 서버를 구축했는데, 얼마나 접속하였을 때 다운되는지 알고 싶은 경우.

 

  • 더 자세한 사항은 JMeter 사이트의 Documentation 이나 구글링을 통해 확인해 주세요. ^^
반응형

댓글