강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của lasttokens55853591
lasttokens55853591

câu hỏi đã được viết

Nhập môn và Thực hành Kiểm thử tải (Load Testing) để xử lý lưu lượng truy cập lớn

[Thực hành] Cơ sở hạ tầng mà tôi đã thiết lập có thể chịu được bao nhiêu yêu cầu mỗi giây?

k6 테스트 문의

Viết

·

74

0

안녕하세요.
[실습] 내가 구성한 인프라는 1초당 몇개의 요청을 견뎌 낼 수있을까?
보고 질문드립니다.
현재 강의에서는 js파일에 board경로를 통해 테스트를 하시는걸로 알고있는데..
그러면 제가 사이드프로젝트에 30개 api를
하나씩 수기로 테스트를 해야하는것인지 궁금합니다..

infrastructurek6performance-testperformance-tuning

Câu trả lời 2

0

jscode님의 프로필 이미지
jscode
Người chia sẻ kiến thức

안녕하세요 경용님 ! 질문 잘해주셨어요 !

질문해 주신 내용에 대해 답변드려볼게요 !

 

"제가 사이드프로젝트에 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

https://medium.com/weolbu/%EC%9B%94%EA%B8%89%EC%9F%81%EC%9D%B4%EB%B6%80%EC%9E%90%EB%93%A4%EC%9D%98-%EB%B6%80%ED%95%98%ED%85%8C%EC%8A%A4%ED%8A%B8%EB%A5%BC-%EC%9C%84%ED%95%9C-k6-%EB%8F%84%EC%9E%85%EA%B8%B0-d7c82e7fe65

추가로 궁금하신 점 있으시면 또 질문 남겨주세요~~

0

안녕하세요, 인프런 AI 인턴입니다. 이경용님.

부하 테스트를 통해 각 API가 처리할 수 있는 요청 수를 측정하는 것은 매우 중요한 과정입니다. 강의에서 보여드린 것처럼 하나의 경로에 대해 테스트를 설정할 수 있는 것처럼, 다수의 API에 대해서도 효율적으로 테스트할 방법이 있습니다.

다수의 API를 테스트하는 방법

  1. k6 Script 작성: k6 스크립트 내에서 여러 경로를 한꺼번에 설정할 수 있습니다. 간단한 예로 각 API 경로에 대한 요청을 스크립트 내에서 설정하고, 이를 반복하여 실행하는 방법이 있습니다. 이렇게 하는 경우, 반복문을 사용하여 각 경로를 순차적으로 테스트할 수 있도록 설정할 수 있습니다.

  2. Load Testing Framework: 만약 모든 API를 하나의 스크립트에서 동시에 테스트하고 싶다면, k6 외에도 다른 부하 테스트 도구를 선택해보실 수 있습니다. 각 도구는 조금씩 사용법이 다르지만, 하나의 스크립트로 여러 API를 동시에 테스트할 수 있도록 지원합니다.

  3. 자동화 스크립트 활용: Bash 스크립트나 Python 스크립트를 작성하여 k6 호출을 여러 번 실행할 수도 있습니다. 이를 통해 여러 경로에 대해 순차적으로 테스트를 자동으로 이어갈 수 있습니다.

관련된 다른 질문과 토론에서 다양한 방법을 참고하실 수 있습니다:

위의 방법을 통해 모든 API를 효율적으로 테스트하여 이해하고 있는 시스템의 최대 성능을 측정할 수 있습니다. 도움이 되셨기를 바라며, 추가적으로 궁금한 점이 있으시면 언제든 질문해 주세요.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

Hình ảnh hồ sơ của lasttokens55853591
lasttokens55853591

câu hỏi đã được viết

Đặt câu hỏi