성능 테스트 도구 설치해보기

현정재·2024년 8월 13일
0

선행 지식

성능 니스트시 꼭 알고 가야하는 개념이 있는데, 바로 응답시간과 TPS입니다.

이 둘은 성능 니스트의 중요한 지표입니다.

응답시간(Response Time)

  • 클라이언트가 서버에 요청을 하고 그 요청에 대한 응답을 받을 때까지 걸린 시간을 의미
  • 응답 시간은 아래의 두가지로 분류 가능
    • 처리 시간(Processing Time): 실제 서버가 요청을 처리하는데 걸린 시간
    • 대기 시간(Latency Time): 클라이언트와 서버간에 데이터를 주고 받는데 걸리는 시간

응답시간(Respose Time) = [동시 사용자 수 / 초당 요청 수(TPS)] - 인지시간(Think Time)

RPS (Requests Per Second) - 초당 처리할 수 있는 HTTP 요청의 수

  • 1분 동안 6,000개의 요청을 처리했다면, RPS는 6,000 / 60초 = 100 RPS

TPS (Transactions Per Second) - 초당 처리할 수 있는 트랜잭션의 수

  • 서버가 초당 처리할 수 있는 요청의 개수
  • TPS가 높을 수록 초당 처리할 수 있는 요청의 수가 많음

초당 요청 수(TPS) = 동시 사용자 수 / 응답시간(Response Time) + 인지시간(Think Time)


테스트 흐름

가장 기본적인 방법입니다.

  • Treads Group 생성 :
    • 테스트 시나리오를 정의하고, 각 가상 사용자가 서버에 얼마나 자주 요청을 보낼지 설정합니다.


  • HTTP Request Defaults 생성 :
    • 중복 설정을 피하고, 각 HTTP 요청에서 기본 값을 자동으로 적용받을 수 있게 합니다.


  • HTTP Request 생성 :
    • 테스트할 특정 API 엔드포인트나 웹 페이지에 대한 요청을 시뮬레이션합니다.


  • View Results Tree 생성 :
    • 테스트 결과를 상세하게 검토하고, 요청별 응답 내용을 분석할 수 있습니다.


  • Summery Report 생성 :
    • 전체 테스트의 성능을 빠르게 파악하고, 성능 개선이 필요한 부분을 식별할 수 있습니다.


  • HTTP Header Manager 생성 :
    • JSON 데이터를 전송할 때는 Content-Type: application/json을 설정합니다.

    • API 요청 시 필요한 인증 정보를 헤더에 추가할 수 있습니다. 예를 들어, Authorization 헤더를 사용하여 Bearer 토큰을 전송할 수 있습니다.


  • 실행

jmeter 설치,실행 및 기본 생성

Jmeter 다운 링크

  • 설치
    • Binaries 에 해당되는 os 클릭
      • .tgz 파일은 주로 Unix/Linux 사용자들에게 익숙하며, tar와 gzip으로 압축을 풀 수 있습니다.
      • .zip 파일은 Windows를 포함한 모든 주요 운영 체제에서 널리 지원되며, 일반 사용자에게 친숙합니다.


  • 실행
    • 클릭으로 실행
      • 압축 해제를 한 후 폴더를 열면 bin 이라는 폴더로 이동합니다.

  • jmeter wionds 배치파일을 더블 클릭하면 실행 됩니다.

  • 터미널로 실행

bin 폴더 안에 jmeter 실행 파일이 있으므로 해당 경로로 들어갑니다.

jmeter 를 입력하면 실행 됩니다.


테스트 준비 및 실행 방법

  • Treads Group 생성
  • Test Plan 우클릭 후 사진 참고
  • HTTP Request Defaults 생성
  • Tread Group 우클릭 후 사진참고
  • HTTP Request 생성
  • Thread Group 우클릭 후 사진참고
  • View Results Tree 생성
  • Thread Group 우클릭 후 사진참고
  • Summary Report 생성
  • Thread Group 우클릭 후 사진참고
  • HTTP Header Manager
  • Thread Group 우클릭 후 사진참고

  • 각각의 파일마다 Name 은 왼쪽 디렉토리 구조에서 사용 할 이름 :
  • Ex) 회원 입력후 +버튼이나 디렉토리에 있는 다른 파일 클릭 시 변경 됩니다.


  • Thread Properties
  • Number of Threads (users) - 동시 접속자 수 설정
  • Ramp-Up Period (in seconds) - 몇초 마다 실행할지 설정
  • Loop Count - 반복 실행 횟수 설정

  • Ex1) 3, 1, 1 순서로 설정할 경우 → 사용자 3명이 1초마다 1번 실행하는 의미입니다.
  • Ex2) 100, 5, 10 순서로 설정할 경우 → 사용자 100명이 5초 간격으로 실행하는 것을 10번 반복 하는 의미입니다.
  • HTTP Request Defaults
  • Defaults 값으로 설정 → 여러개의 HTTP Request 설정시 입력하지 않으면 Defaults 값으로 설정된 데이터가 설정됩니다.
  • Protocol [http]: Defaults 값이 http 로 설정 → https 를 사용할경우 입력
  • Server Name or IP: 도메인주소 또는 IP 주소 입력 → mb.test-web.co.kr or 51.208.41.72
  • https 를 사용할 경우 port Number : Defaults 값이 443, 명시적으로 입력하고 싶을경우 443 입력
  • HTTPS 요청에서 포트 번호를 지정하지 않으면 기본적으로 443 포트를 사용
  • Path: controller에서 RequestMapping 과 동일, 모든 API 공통 경로를 입력

  • HTTP Request
  • HTTP Request Defaults에서 설정하지 않을 시 모든 데이터를 HTTP Request에서 설정
  • 요청방식 선택

데이터 입력란 Parameters,Body Data 중 하나만 입력 가능!

  • 데이터를 RequestParam으로 받을 경우 Parameters 에서 화면 중앙 아래에 Add 클릭

  • 경로에 입력가능 PathVariable 방식도 → /members/signup/{1} 가능

두가지 데이터를 모두 입력해야 할 경우

경로 입력 + Body Data에 입력

  • 데이터를 RequestBody로 받을 경우 Body Data 클릭 후 입력
  • HTTP Header Manager
  • 화면 중앙 아래에 Add 버튼을 눌러 content-Type , applicaion/json 데이터 입력하기
  • 저장 후 실행 하면 테스트가 진행 됩니다.

오늘은 설치 및 기본 설정 방법에 대해 적어 보았다.. 다음 글에서는 라이브러리를 어떻게 다운 받는지 적어 보아야 겠다~!

profile
wonttock

0개의 댓글