[Network] Jmeter HTTP Cookie Manager

2juhyunju ㅣ 2023. 6. 27. 17:30

이번 포스팅에서는 앞서 했던 부하 테스트 + HTTP Cookie Manager를 사용해 보겠다.

Thread Group 생성

Text Plan → Add → Threads(Users) → Thread Group 생성

Thread Group에 설정값을 설정 해준다.

  1. Number of Threads(users): 생성할 사용자의 수를 의미한다.
  2. Ramp-up period(seconds): 사용자가 생성되는 시간 간격을 의미한다. ex) 10명의 사용자가 5초의 Ramp-Up 기간이 설정된 경우, 매 초마다 2명의 사용자가 생성된다.
  3. Loop Count: 사용자가 테스트 계획을 반복하는 횟수를 지정한다. 0으로 설정하면 무한 반복된다.

위 예시에서는 사용자 20명을 동시에 생성하는 예시이다.


Http Requet 생성

특정 서버에 테스트를 하기 위해 HTTP Request Sampler를 생성해 준다.

Thread Group → Add → Sampler → HTTP Request 생성

1. Protocol[http]: http 또는 https 프로토콜을 설정한다.
2. Server Name or IP: 테스트할 서버 IP 또는 주소를 설정한다. 이 때 주소만 입력하고 나머지 경로는 아래 Path 항목에서 설정해준다. ex) 192.168.0.10/login이 테스트할 주소라면 192.168.0.10 까지만 입력한다.
3. Port Number: 접속 포트 번호를 설정한다.
4. HTTP Request: 요청할 HTTP 메소드를 적어준다.
5. Path: 3번에서 설정했던 주소 뒤로 오는 나머지 요청 경로를 설정한다.


HTTP Cookie Manager 생성

HTTP Cookie Manager는 JMeter에서 사용되는 구성 요소중 하나로, 웹 어플리케이션과의 상호 작용 중에 쿠키를 관리하는데 사용된다. 앞서 HTTP Request에서 요청 경로(Path)가 사용자가 로그인을 해야 접속 할 수 있는 주소이기 때문에 HTTP Cookie Manager를 추가해 로그인 사용자의 쿠키 값을 수동으로 설정하여 줘야 한다.

HTTP Request → Add → Config Element → HTTP Cookie Manager 생성

1. Add를 클릭해 쿠키값을 입력할 공간을 생성한다.
2. User-Defined Cookies에 Name,Value,Domain,Path 항목을 설정한다.

  • Name: 쿠키 이름
  • Value: 쿠키 값
  • Domain: 서버 주소
  • Path: 서버주소를 뺀 나머지 경로

* 쿠키에 대한 정보는 테스트할 서버 웹 브라우저(크롬)에서 F12 개발자도구 → Application 탭에서 확인할 수 있다.


 

Timer 생성

요청을 몇 초 간격으로 요청할 것인지 설정하고 그  간격을 통해서 테스트의 시간을 계산할 수 있기 때문에 타이머를 생성해 준다.

Thread Group → Add → Timer → Constant Timer 생성

Thread Delay (in Milliseconds): 쓰레드 그룹에서 설정한 사용자가 몇 초 간격으로 요청을 할 것인지에 대한것이다. 단위는 Milliseconds이다. 위 예시에서는 0.5초마다 요청을 원하기 때문에 500으로 설정해줬다.


Listener

부하테스트 결과를 확인하기 위해 Listener를 사용한다.
Listener 종류는 여러가지가 있고 그 중 대표적인 몇개를 사용하고 결과를 확인 해보자

View Results in Table

View Results in Table은 요청에 대한 응답을 Table로 출력해 한눈에 볼 수 있다.

HTTP Request → Add → Listener → View Results in Table 생성

정상적으로 요청이 진행되었는지 확인이 가능하고 여러가지 정보를 확인할 수 있다.

  • Sample: 샘플의 ID 번호
  • Start Time: 보내기 시작한 시간
  • Thread Name: 쓰레드 그룹 이름
  • Label: 요청을 보낸 Request 이름
  • Sample Time(ms): 요청 시작 시점부터 응답 종류 시점까지의 시간
  • Status: 응답상태
  • Bytes: 응답 데이터
  • Sent Byte: 요청 데이터
  • Latency: 지연속도
  • Connect Time(ms): TCP 연결 시간

View Results Tree

View Results Tree는 요청에 대한 응답을 트리 형식으로 볼 수 있고 특정한 데이터를 검색할 수 있다.

HTTP Request → Add → Listener → View Results Tree 생성

각각 요청에 대한 결과값을 자세하게 확인할 수 있고 요청이 성공하면 초록색을 실패하면 빨간색 아이콘으로 표시된다.

Summary Report

Summary Report는 요청에 대한 응답을 요약해서 보여준다

HTTP Request → Add → Listener → Summary Report 생성

  • Label: 요청했던 Request Sampler의 이름
  • Samples: 서버에 요청한 횟수
  • Average: 평균응답시간(ms)
  • Min: 최소응답시간(ms)
  • Max: 최대응답시간(ms
  • Std.Dev.: 표준편차 요청에 대한 응답시간이 일정하고 안정적인가를 확인한다. 값이 적을수록 안정적이다.
  • Error: Error율(%)
  • Throughput: 처리량( 초당 처리건수)
  • KB/sec: 처리량(초당 처리 KB)

'Network' 카테고리의 다른 글

locust 부하 테스트  (0) 2023.07.28
[Network] Jmeter  (0) 2023.06.20
[Network] TCP/IP 4계층  (0) 2022.09.07
[Network] DAS,NAS,SAN  (0) 2022.09.06
[Network] OSI 7계층  (0) 2022.09.03