Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dalgurum API Tester

API 부하 테스트 서비스 — k6 기반으로 최대 10,000건의 동시 트래픽 성능을 측정하고, Claude AI가 오류를 분석합니다.


사전 요구 사항

도구 버전 설치 방법
Node.js v18 이상 https://nodejs.org
k6 최신 버전 아래 참고

k6 설치

Windows (Chocolatey)

choco install k6

Windows (winget)

winget install k6

macOS (Homebrew)

brew install k6

Linux

sudo gpg -k
sudo gpg --no-default-keyring --keyring /usr/share/keyrings/k6-archive-keyring.gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys C5AD17C747E3415A3642D57D77C6C491D6AC1D69
echo "deb [signed-by=/usr/share/keyrings/k6-archive-keyring.gpg] https://dl.k6.io/deb stable main" | sudo tee /etc/apt/sources.list.d/k6.list
sudo apt-get update && sudo apt-get install k6

k6 공식 설치 가이드: https://k6.io/docs/get-started/installation/


설치 및 실행

1. 패키지 설치

npm install

2. 환경 변수 설정

.env.example을 복사하여 .env 파일을 생성합니다.

cp .env.example .env

.env 파일을 열고 Anthropic API 키를 입력합니다.

ANTHROPIC_API_KEY=sk-ant-여기에-실제-API-키-입력
PORT=3000

Anthropic API 키는 https://console.anthropic.com 에서 발급받을 수 있습니다.

3. 서버 실행

npm start

개발 모드 (파일 변경 자동 재시작):

npm run dev

4. 브라우저 접속

http://localhost:3000

사용 방법

Mode 1 — Swagger 문서로 테스트

  1. 홈 화면에서 Mode 1 카드의 입력란에 Swagger 문서 URL을 입력합니다.
    • 예: https://api.example.com/v3/api-docs
    • 예: https://api.example.com/swagger.json
  2. 문서 불러오기 버튼을 클릭합니다.
  3. 파싱된 엔드포인트 목록에서 테스트할 엔드포인트 하나를 선택합니다.
  4. 슬라이더로 동시 요청 수(1,000 ~ 10,000)를 설정합니다.
  5. 테스트 시작 버튼을 클릭합니다.

경로 파라미터가 포함된 엔드포인트(/users/{id})는 자동으로 1로 치환되어 테스트됩니다.

Mode 2 — 직접 입력

  1. 홈 화면에서 Mode 2 카드의 메서드(GET, POST 등)를 선택합니다.
  2. 엔드포인트 URL을 입력합니다.
    • 예: https://api.example.com/api/users
  3. 슬라이더로 동시 요청 수(1,000 ~ 10,000)를 설정합니다.
  4. 테스트 시작 버튼을 클릭합니다.

테스트 결과 해석

항목 설명
성공률 (정확성) 2xx 응답을 받은 요청의 비율
평균 응답 시간 (Avg) 전체 요청의 평균 응답 시간 (ms)
P95 응답 시간 상위 95%의 요청이 이 시간 내에 완료됨 (ms)
중간값 (P50 / Median) 전체 요청 중 정확히 중간에 해당하는 응답 시간 (ms)

성공률 색상 기준

  • 초록색: 95% 이상 (양호)
  • 노란색: 70~94% (주의)
  • 빨간색: 70% 미만 (위험)

Claude AI 분석

에러율이 10%를 초과하거나 k6 실행 자체가 실패한 경우, Claude AI가 자동으로 원인을 분석하고 해결 방법을 제시합니다.


테스트 설정 상세

설정
최소 요청 수 1,000건
최대 요청 수 10,000건
개별 요청 타임아웃 120초
k6 프로세스 타임아웃 5분
최대 VU (가상 사용자) 500 (요청 수가 500을 초과해도 500 VU로 분산 처리)

디렉토리 구조

dalgurum-api-tester/
├── src/
│   ├── server.js              # Express 서버 진입점
│   ├── routes/
│   │   ├── index.js           # 홈 페이지 라우트
│   │   ├── swagger.js         # Swagger 분석 라우트
│   │   └── test.js            # 테스트 실행 & 결과 라우트
│   ├── services/
│   │   ├── swaggerService.js  # Swagger URL 파싱
│   │   ├── k6Service.js       # k6 스크립트 생성 & 실행
│   │   └── claudeService.js   # Claude AI 에러 분석
│   └── views/                 # EJS 서버사이드 렌더링 템플릿
│       ├── layout.ejs
│       ├── index.ejs
│       ├── endpoints.ejs
│       ├── running.ejs
│       └── results.ejs
├── public/
│   └── css/style.css
├── .env                       # 환경 변수 (직접 생성)
├── .env.example               # 환경 변수 예시
├── package.json
└── README.md

주의 사항

  • 부하 테스트 대상 서버의 소유권 또는 사용 허가가 있는 경우에만 사용하세요. 무단 부하 테스트는 서비스 장애를 유발하며 법적 문제가 될 수 있습니다.
  • k6는 시스템 PATH에 있어야 합니다. 설치 후 k6 version으로 확인하세요.
  • 테스트 결과는 서버 메모리에 2시간 동안 보관된 후 자동 삭제됩니다.
  • .env 파일은 절대 버전 관리에 포함하지 마세요.

About

달구름 Developer - API 성능을 쉽고 빠르게 측정해주는 AI 도구

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages