개발이 완료될 시점이 되면, 우리가 개발한 서버가 어느정도의 부하까지 견뎌내는지 테스트를 해봐야한다.
(물론 부하테스트가 항상 필요한 건 아니다.)
부하테스트를 결정하기 전에 몇가지 고려사항이 있긴하나, 일단 사용자가 많이 접속할 것을 감안하여,
부하테스트를 해야한다고 가정 시 여러 툴중에 오늘은 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
'APM > Prometheus + Grafana' 카테고리의 다른 글
prometheus 사용하여 docker container 연결하기 (0) | 2025.02.04 |
---|---|
K6 grafana 연동 ( k6 그라파나 연동 ) (0) | 2024.11.25 |