1. 개발자
K6 설치 및 사용 방법 - window
자르르
2023. 7. 28. 11:48
설치 사이트 : https://k6.io/docs/get-started/installation/
설치 이후 terminal 에서 확인
k6에서 간단히 부하 테스트를 위한 url 을 제공해준다.
간단한 스크립트 생성
script.js
import http from 'k6/http';
import { sleep } from 'k6';
export const options = {
vus: 10,
duration: '30s',
};
export default function () {
http.get('http://test.k6.io');
sleep(1);
}
실행:
k6 run script.js
해당 결과를 k6에서는 메트릭(Metrics)이라고 표현한다.
METRIC NAME | TYPE | DESCRIPTION |
vus | Gauge | 현재 총 활동하는 가상유저 |
vus_max | Gauge | 가상 유저의 최대 가능한 수 / VU 리소스가 사전 할당되어 로드 수준을 확장할 때 성능에 영향을 미치지 않는다. |
iterations | Counter | VU가 JS 스크립트(기본 기능)을 실행한 총 회수이다. |
iteration_duration | Trend | setup과 teardown에 소요된 시간을 포함하여 전체 반복을 완료하는 데 걸린 시간이다. 특정 시나리오에 대한 반복 기능의 지속 시간을 계산하려면 이 해결 방법을 시도하라. |
dropped_iterations | Counter | VU부족 또는 시간 부족(반복 기반 실행기에서 만료된 maxDuration)으로 인해 시작되지 않은 반복횟수 |
data_received | Counter | 수신된 데이터의 양이다. 이 예에서 개별 URL에 대한 데이터를 추적하는 방법을 다룬다. |
data_sent | Counter | 전송한 데이터 량 / 개별 URL에 대한 데이터를 추적하여 개별 URL에 대한 데이터를 추적한다. |
checks | Rate | 성공적으로 체크한 비율 |
METRIC NAME | TYPE | DESCRIPTION |
http_reqs | Counter |
얼마나 많은 요청을 K6가 생성했는지 카운트 |
http_req_blocked | Trend | 유용한 TCP 커넥션 슬롯에 대해서 대기한시간(블록시간) 을 측정한다. |
http_req_connecting | Trend | 원격 호스트와 TCP 커넥션을 만들기 까지 소요된 시간 |
http_req_tls_handshaking | Trend | 원격 호스트와 TLS 세션 핸드쉐이킹에 소요된 시간 |
http_req_sending | Trend | 원격 호스트에 데이터를 전송하는데 걸린 시간 |
http_req_waiting | Trend | 원격 호스트로 부터 응답을 기다리는 시간 (첫번째 바이트가 온 시간 혹은 TTFB) |
http_req_receiving | Trend | 원격 호스트로 부터 데이터를 수신하는데 걸린 시간 |
http_req_duration | Trend | 요청에 대한 총 소요시간 이는 http_req_sending + http_req_waiting + http_req_receiving 과 동일한 시간이다. (이 시간은 원격 서버가 요청을 받고 처리하고 응답을 한 시간이며 초기 DNS 룩업과 커넥션 시간은 제외이다) |
http_req_failed | Rate | setResponseCallback에 따른 요청 실패율 |
METRIC Type | Description |
Counter | 추가된 값의 누적값에 대한 메트릭이다. |
Gauge | min/max/last 값이 저장된다. 최종값이다. |
Rate | 0이 아닌 추가된 값의 백분율을 추적하는 메트릭이다. |
Trend | 추가된 값에 대한 통계 계산결과를 나타낸다. (min/max/average/percentiles) |