서버

Jmeter 테스트 플랜 구성

재노 2022. 6. 4. 16:16
  • 이번 글의 내용은 공식 가이드 > 3.2 Controllers에 나온 내용을 바탕으로 작성했습니다.

 

테스트 시나리오 구성

  • 특정 URL(API)들을 어떤 순서로 몇 번 반복하여(혹은 최대 부하 수) 호출할지 결정한다.
  • 특정 URL 호출 시 어떤 파라미터가 필요한지 결정한다.
  • 자세한 사항은 API 정의서나 개발자에게 문의한다.

 

테스트 플랜 구성을 위한 항목

  • 모든 구성 항목은 Test Script 우클릭 - 추가 - 설정 엘리먼트 안에 있다.

HTTP 설정 엘리먼트 선택

 

  1. HTTP Header Manager(HTTP 헤더 관리자)

  • 클라이언트가 API 호출 시 반드시 전달해야 하는 값들을 HTTP 헤더 관리자에 입력한다.
  • 호출할 API 보다 위에 놓여야 한다.(드래그 & 드롭으로 항목별 순서 조정 가능)
  • View Results Tree에서 각 부하의 header에 해당 값이 포함되어 API를 호출하는지 확인할 수 있다.

HTTP 헤더 관리자

 

  2. HTTP Cookie Manager(HTTP 쿠키 관리자)

  • 클라이언트가 서버에 접속하면 서버는 사용자의 웹 브라우저에 작은 데이터를 전달하며, 웹 브라우저는 이 데이터를 저장한다. 클라이언트가 동일한 서버에 재요청할 경우, 웹 브라우저는 저장된 데이터를 함께 서버에 전달한다. 웹브라우저에 저장한 데이터를 쿠키라고 한다.
  • Jmeter도 웹 브라우저처럼 쿠키를 저장하거나 만들어서 서버에 전달할 수 있다.
  • 호출할 API 보다 위에 두어야 한다.(드래그 & 드롭으로 항목별 순서 조정 가능)

HTTP 쿠키 관리자

 

  3. HTTP 요청 기본 설정(HTTP Request Defaults)

  • 클라이언트가 API 호출 시에 반드시 전달해야 하는 값들을 HTTP Request Defaults에 입력한다.
  • API 호출(웹/앱 화면)마다 하나의 HTTP Request Defaults를 생성한다.
  • 주요 설정 항목 : 프로토콜(http, https), 서버 이름/IP(도메인), 포트 번호, 요청 방식(GET, POST), 경로(쿼리스트링), 인코딩(utf-8), 파라미터(리스트 형식) or Body 데이터(json 형식)
  • View Results Tree에서 각 부하의 request에 해당 값이 포함되어 API를 호출하는지 확인할 수 있다.

HTTP 요청 기본 설정(Body)
HTTP 요청 기본 설정(파라미터)

 

  4. CSV 데이터 셋 설정(CSV Data Set Config)

  • 위 HTTP 요청 기본 설정에서 파라미터/Body 데이터 부분에 변수를 사용할 수 있다.( ${변수} )
  • CSV 형식의 파일을 부하를 발생하는 서버에 두고, Jmeter에서 불러올 수 있다.

 

  • 주요 설정 항목

(1) 파일 이름(외부에서 불러올 파일이 어디에 있는지 경로 입력)

(2) 파일 인코딩(utf-8)

(3) 변수 이름들(CSV 파일의 한 줄에 여러 데이터가 있으면 각 열에 해당하는 변수명 입력)

(4) 첫 행 무시(True, False)

(5) 구분자(, \t) : CSV 파일의 한 줄에 있는 데이터가 무엇으로 분리되었는지 확인한다.

(6) 인용 부호로 감싸진 데이터 허용(True, False)

(7) EOF 도달 시 재순환 읽기?(True, False) : CSV 파일의 마지막 줄까지 도달하면 다시 처음으로 돌아갈지 결정

(8) EOF 도달 시 읽기 중단?(True, False) : CSV 파일의 마지막 줄까지 도달하면 더 이상 부하 발생 안 함

CSV 데이터 셋 설정

 

참고자료

Apache JMeter 오픈소스로 대용량 웹 서비스 성능 테스트하기, 정재만, 한빛미디어, 2015

 

[rkfksh - JMeter 무작정 따라해보기(Windows)]

https://velog.io/@rkfksh/JMeter-%EB%AC%B4%EC%9E%91%EC%A0%95-%EB%94%B0%EB%9D%BC%ED%95%B4%EB%B3%B4%EA%B8%B0Windows

 

[mozilla web docs - HTTP 쿠키]

https://developer.mozilla.org/ko/docs/Web/HTTP/Cookies

 

[얼스킴 - JMeter HTTP Cookie Manager]

https://sooo-9.tistory.com/m/20