Jmeter 테스트 플랜 구성
- Jmeter 공식 가이드 : https://jmeter.apache.org/usermanual/index.html
- 이번 글의 내용은 공식 가이드 > 3.2 Controllers에 나온 내용을 바탕으로 작성했습니다.
테스트 시나리오 구성
- 특정 URL(API)들을 어떤 순서로 몇 번 반복하여(혹은 최대 부하 수) 호출할지 결정한다.
- 특정 URL 호출 시 어떤 파라미터가 필요한지 결정한다.
- 자세한 사항은 API 정의서나 개발자에게 문의한다.
테스트 플랜 구성을 위한 항목
- 모든 구성 항목은 Test Script 우클릭 - 추가 - 설정 엘리먼트 안에 있다.
1. HTTP Header Manager(HTTP 헤더 관리자)
- 클라이언트가 API 호출 시 반드시 전달해야 하는 값들을 HTTP 헤더 관리자에 입력한다.
- 호출할 API 보다 위에 놓여야 한다.(드래그 & 드롭으로 항목별 순서 조정 가능)
- View Results Tree에서 각 부하의 header에 해당 값이 포함되어 API를 호출하는지 확인할 수 있다.
2. HTTP Cookie Manager(HTTP 쿠키 관리자)
- 클라이언트가 서버에 접속하면 서버는 사용자의 웹 브라우저에 작은 데이터를 전달하며, 웹 브라우저는 이 데이터를 저장한다. 클라이언트가 동일한 서버에 재요청할 경우, 웹 브라우저는 저장된 데이터를 함께 서버에 전달한다. 웹브라우저에 저장한 데이터를 쿠키라고 한다.
- Jmeter도 웹 브라우저처럼 쿠키를 저장하거나 만들어서 서버에 전달할 수 있다.
- 호출할 API 보다 위에 두어야 한다.(드래그 & 드롭으로 항목별 순서 조정 가능)
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를 호출하는지 확인할 수 있다.
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 파일의 마지막 줄까지 도달하면 더 이상 부하 발생 안 함
참고자료
Apache JMeter 오픈소스로 대용량 웹 서비스 성능 테스트하기, 정재만, 한빛미디어, 2015
[rkfksh - JMeter 무작정 따라해보기(Windows)]
[mozilla web docs - HTTP 쿠키]
https://developer.mozilla.org/ko/docs/Web/HTTP/Cookies
[얼스킴 - JMeter HTTP Cookie Manager]
https://sooo-9.tistory.com/m/20