k6 테스트 문의
83
投稿した質問数 33
안녕하세요.
[실습] 내가 구성한 인프라는 1초당 몇개의 요청을 견뎌 낼 수있을까?
보고 질문드립니다.
현재 강의에서는 js파일에 board경로를 통해 테스트를 하시는걸로 알고있는데..
그러면 제가 사이드프로젝트에 30개 api를
하나씩 수기로 테스트를 해야하는것인지 궁금합니다..
回答 2
1
안녕하세요 경용님 ! 질문 잘해주셨어요 !
질문해 주신 내용에 대해 답변드려볼게요 !
"제가 사이드프로젝트에 30개 api를 하나씩 수기로 테스트를 해야하는것인지 궁금합니다.."
-> 30개의 API를 하나씩 수기로 테스트하실 필요는 전혀 없어요 ~
우선 현업에서는 파레토의 법칙(80:20법칙)을 적용해서
전체 트래픽의 80% 가량을 차지하는 핵심 API들 위주로 부하테스트를 진행해요 !
메인 페이지 조회, 로그인, 자주사용되는 조회, 핵심 비즈니스 로직이 있는 API 등등
핵심 API만 테스트해도 충분히 의미있는 결과를 얻을 수 있어요 !
또한 k6는 아래와 같이 하나의 스크립트에서 여러 API를 테스트할 수 있는 방법들이 있어요 !
export default function () {
let random = Math.random();
if (random < 0.5) { // 50% - 게시글 조회 API
http.get('http://{EC2 IP 주소}/boards');
} else if (random < 0.75) { // 25% - 사용자 조회 API
http.get('http://{EC2 IP 주소}/users');
} else if (random < 0.9) { // 15% - 게시글 작성 API
const data = { title: '제목', content: '내용' };
http.post('http://{EC2 IP 주소}/boards', JSON.stringify(data), {
headers: { 'Content-Type': 'application/json' },
});
} else {// 10% - 기타 API
http.get('http://{EC2 IP 주소}/profile');
}
sleep(1);
}또한 위와 같은 방법 이외에도 시나리오별로 분리해서 테스트를 진행할수도 있어요 !
아래 공식문서에 여러 사용 예시들이 있으니
경용님의 프로젝트에 테스트해보기 좋은 예시가 있으면
참고해서 사용해 보시면 도움이 되실꺼에요 !
https://grafana.com/docs/k6/latest/using-k6/scenarios/advanced-examples/
공식문서와 함께 아래 레퍼런스들을 참고해보시면 도움이 되실것 같아 같이 첨부해드려요 :)
https://mangkyu.tistory.com/420
https://devocean.sk.com/blog/techBoardDetail.do?ID=164347
추가로 궁금하신 점 있으시면 또 질문 남겨주세요~~
0
안녕하세요, 인프런 AI 인턴입니다. 이경용님.
부하 테스트를 통해 각 API가 처리할 수 있는 요청 수를 측정하는 것은 매우 중요한 과정입니다. 강의에서 보여드린 것처럼 하나의 경로에 대해 테스트를 설정할 수 있는 것처럼, 다수의 API에 대해서도 효율적으로 테스트할 방법이 있습니다.
다수의 API를 테스트하는 방법
k6 Script 작성: k6 스크립트 내에서 여러 경로를 한꺼번에 설정할 수 있습니다. 간단한 예로 각 API 경로에 대한 요청을 스크립트 내에서 설정하고, 이를 반복하여 실행하는 방법이 있습니다. 이렇게 하는 경우, 반복문을 사용하여 각 경로를 순차적으로 테스트할 수 있도록 설정할 수 있습니다.
Load Testing Framework: 만약 모든 API를 하나의 스크립트에서 동시에 테스트하고 싶다면, k6 외에도 다른 부하 테스트 도구를 선택해보실 수 있습니다. 각 도구는 조금씩 사용법이 다르지만, 하나의 스크립트로 여러 API를 동시에 테스트할 수 있도록 지원합니다.
자동화 스크립트 활용: Bash 스크립트나 Python 스크립트를 작성하여 k6 호출을 여러 번 실행할 수도 있습니다. 이를 통해 여러 경로에 대해 순차적으로 테스트를 자동으로 이어갈 수 있습니다.
관련된 다른 질문과 토론에서 다양한 방법을 참고하실 수 있습니다:
위의 방법을 통해 모든 API를 효율적으로 테스트하여 이해하고 있는 시스템의 최대 성능을 측정할 수 있습니다. 도움이 되셨기를 바라며, 추가적으로 궁금한 점이 있으시면 언제든 질문해 주세요.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
인프라 구성 중 ELB 관련하여 질문 드립니다.
0
29
2
부하 테스트 환경 구성에 대한 질문
0
95
2
부하 테스트에 대한 문의드립니다
0
67
2
배포된 서버의 부하테스트 질문 있습니다.
0
104
1
mem_used_percent 지표가 없는 경우가 있을까요?
0
111
2
ec2 수평적 확장에 대하여
0
125
2
TPS 기준
0
456
2
섹션2 - [실습] EC2에 백엔드 서버(Spring Boot) 셋팅하기
0
142
2
성능테스트하기 애매한 API의 경우 진행 방법이 궁금합니다.
0
197
2
개인 프로젝트 시 top 입력 시 해석 도움 요청
0
138
2
sudo nohup java -jar jscode-0.0.1-SNAPSHOT.jar & 설치 오류?
0
141
3
목표 throughput, latency는 어떤 기준으로 정하나요?
0
193
2
aws t3a.small 비용
0
370
2
백엔드 API 설정을 https로 하고 싶은 경우
0
226
2
다양한 API가 있는 경우 효율적으로 테스트하는 방법이 있을까요?
0
121
1
혹시 DB를 RDS로 빼지 않고 EC2안에 설치하게 되면 메트릭을 어떻게 측정할까요?
0
171
2
node, nest 사용자도 쉽게 이해가 가능할까요?
0
198
3
수평적 확장을 통해 병목 지점 해소를 한 이유가 궁금합니다.
0
161
2
request failed 관련하여 질문 드립니다.
0
207
2
RDS 실시간 모니터링 질문
0
126
2
안녕하세요 ㅠㅠ 과금되는게 있어서 질문드립니다.
0
198
2
스프링서버 2개일 때 병목지점 판단하는 법(CPU 사용률?), 권장 TPS 수치
0
231
2
로드밸런서를 넣은 이유가 있을까요?
0
119
1
tps에 관하여 질문있습니다.
0
238
2

