0. 원도우에서 K6 설치하기
공식 사이트에서 k6-latest-amd64.msi 파일을 다운로드 받아서 설치를 진행합니다.
1. k6 테스트 스트립트 작성 및 실행
import http from "k6/http";
// vus는 가상 유저를 설정하는 항목
// duration은 몇 초동안 테스트를 진행할지 선택하는 옵션
export const options = { // 100명이 10초 동안 요청 로직 작성
vus: 100,
duration: "10s"
};
export default function(){ // 테스트에 사용할 요청 메서드,주소
http.get("http://localhost:3002");
}
k6 run 파일명.js로 k6를 실행하여 스크립트 동작을 확인합니다.
2. 실행 결과 해석하기
1) scenarios: (100.00%) 1 scenario, 100 max VUs, 40s max duration (incl. graceful stop):
* default: 100 looping VUs for 10s (gracefulStop: 30s)
가상 유저 100명으로 최대 40초동안 테스트라는 시나리오입니다. 실제 테스트 시간은 10초인데 gracefulStop의 기본값 30초를 더해서 40초가 되었습니다.
* gracefulStop 옵션은 가상 유저를 테스트 중에 변경하는 시나이로에 갑자기 유저를 변경하게 되면 데이터가 급변한느 현상이 생기므로 최소 30초 동안은 기존 유저 값이 유지된다는 의미입니다.
2) http_req_duration..........: avg=300.32ms min=11.04ms med=236.31ms max=3.34s p(90)=356.17ms p(95)=407.69ms
HTTP 요청 기간에 대한 결과입니다. 평균 300.32밀리초가 걸렸습니다. p(90)=356.17는 90%요청이 356.17 밀리초 이내에 완료되었음을 의미합니다.
3) http_req_failed............: 0.00% ✓ 0 ✗ 3344
HTTP 요청이 얼마나 실패했는지 보여줍니다.
4)http_reqs..................: 3344
HTTP 요청이 3344번 발생했다는 듯입니다. 이를 기반으로 n초 간격으로 요청을 보냈는지 확인할 수 있습니다.
5) iteration_duration.........: avg=302.5ms min=11.75ms med=236.94ms max=3.41s p(90)=357.59ms p(95)=408.24ms
HTTP 요청이 한 번 완료되고 다시 시작할 때까지 걸리는 시간에 대한 평균 데이터입니다.
'Node.js' 카테고리의 다른 글
05. 노드와 비동기 처리 (0) | 2024.03.02 |
---|---|
04. 네트워크 기초 및 서버 만들기 (0) | 2024.02.12 |
03. path, File System 모듈과 스트림 (0) | 2024.02.12 |
02.자바스크립트 기초 문법과 모듈 (1) | 2024.01.31 |
[서평] Do it! Node.js 프로그래밍 입문 (0) | 2023.11.27 |