🖥️ 컴퓨터 공부/부하테스트 & 성능최적화

K6 테스트 기본 구조 및 실행

le2donguk 2026. 4. 4. 14:01

이전에는 K6를 설치까지만 했습니다 이제는 K6의 기본 구조와 간단한 테스트를 해보겠습니다

고고띠!!

 

시작하기 전에

k6 스크립트를 작성하려면 다음이 필요합니다.

  • 자바스크립트 또는 타입스크립트에 대한 기본적인 지식
  • K6 설치 여부 
  • 스크립트를 작성하기 위한 코드 편집기 (Visual Studio Code , JetBrains 편집기 등등..)

K6 테스트 기본 구조

k6가 테스트를 해석하고 실행하려면 모든 k6 스크립트는 공통 구조를 따라야 합니다.

  1. Default Function 
  2. Imports 
  3. Options 
  4. Lifecycle operations 

 

Default Function

K6 테스트 에 있어 핵심인 부분입니다. 이 영역에서는 유저가 실제로 하는 행동을 정의합니다 

테스트를 진행하면서 가상 유저(VU)가 이 함수를 계속 반복 실행 합니다 

export default function () {
  http.get('https://api.myserver.com');
}

 

즉 사용자 1명이 API 호출하는 행동입니다. 즉 유저가 우리 서버에서 행동을 할 때 발생하는 시나리오를 여기서 정의합니다 

VU(가상 사용자가)가 100명이면 위에서 정의한 함수가 동시에 100번씩 계속 실행됩니다.

 


Imports

라이브러리 가져오기를 정의합니다. 스크립트의 기능을 확장하기 위해 추가 k6 모듈 또는 JavaScript 라이브러리(jslibs)를 가져올 수 있습니다.

import http from 'k6/http';
import { sleep } from 'k6';

 


Options

부하 설정을 하는 곳 입니다. 즉 서버에 부하를 얼마나 때릴 거냐 설정하는지 결정을 합니다 

export const options = {
  vus: 100,        // 동시 사용자 수
  duration: '30s', // 테스트 시간
};

 

이 스크립트의 의미는 100명이 30초 동안 계속 요청 한다는 뜻입니다 

즉 이게 부하테스트의 조건이 됩니다.

 


Lifecycle

테스트 전/후/중간에 실행되는 코드다 k6에는 총 3 단계가 있다

 

setup()

테스트 시작 전에 1번 실행

export function setup() {
  return { token: "abc123" };
}

 

예:

  • 로그인해서 토큰 받아오기
  • 테스트 데이터 준비

 

default()

실제 테스트 (위에서 설명)

 

 

teardown()

테스트 끝나고 1번 실행

export function teardown(data) {
  console.log("테스트 종료");
}

 

예:

  • 결과 정리
  • 리소스 정리