본문 바로가기
APM/Prometheus + Grafana

K6 부하테스트 어떻게 할까?

by Bill Lab 2024. 11. 25.
728x90

개발이 완료될 시점이 되면, 우리가 개발한 서버가 어느정도의 부하까지 견뎌내는지 테스트를 해봐야한다.

(물론 부하테스트가 항상 필요한 건 아니다.)

 

부하테스트를 결정하기 전에 몇가지 고려사항이 있긴하나, 일단 사용자가 많이 접속할 것을 감안하여,

부하테스트를 해야한다고 가정 시 여러 툴중에 오늘은 K6에 대해 다뤄 보겠다.

 

우선 K6 는 자바스크립트 기반에 스크립트 명령어를 미리 작성하여 간단한 실행으로 부하테스트를 진행할 수 있다.

 

설치 부터 해보자

(brew 기반 설치 방식이다.)

brew install k6

 

설치가 끝났으면 간단한 스크립트를 작성해보자

(자바스크립트 코드이다.)

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

export const options = {
  vus: 1000,        // 가상 사용자 수
  duration: "30s", // 테스트 시간
};

export default function () {
  http.get("http://localhost:8089/orders");
  sleep(1);
}

(아주 간단하다, 어디에 트래픽을 몇초동안 몇명의 user기반으로 발생시킨건지 명시하면된다.)

물론, 시나리오 기반의 부하테스트를 수행하려면 위의 function 내 호출과 응답을 받고 다음응답을 호출하고,

응답 status 확인하고~ 이러한 패턴의 반복이다. 

 

자 이제 부하테스트를 실행시켜 보자!

k6 run {파일명}

 

 

추가로!

아래와 같이 graphql 기반의 서버도 부하테스트를 진행할 수 있다.

https://k6.io/blog/load-testing-graphql-with-k6/

 

Load testing GraphQL with k6

The popularity and adoption of GraphQL have been impressive in the last years, this post provides an example using k6 to load testing a GraphQL service.

k6.io

 

728x90