이번 포스팅에서는 앞서 했던 부하 테스트 + HTTP Cookie Manager를 사용해 보겠다.
Thread Group 생성
Text Plan → Add → Threads(Users) → Thread Group 생성
Thread Group에 설정값을 설정 해준다.
- Number of Threads(users): 생성할 사용자의 수를 의미한다.
- Ramp-up period(seconds): 사용자가 생성되는 시간 간격을 의미한다. ex) 10명의 사용자가 5초의 Ramp-Up 기간이 설정된 경우, 매 초마다 2명의 사용자가 생성된다.
- 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 |