일반 Python 코드로 HTTP 및 기타 프로토콜의 부하 테스트를 정의하고 웹 UI에서 실행할 수 있는 오픈소스 부하 테스트 도구입니다.
tsenart/vegeta
일정한 요청 속도로 부하를 보내고 지연 시간 통계를 제공하는 HTTP 부하 테스트 CLI 도구이자 Go 라이브러리입니다.
대체할 수 있는 제품:Apache JMeter
- 스타
- 25,225
- 포크
- 1,428
- 열린 이슈
- 125
- 마지막 커밋
- 지난달
어떤 프로젝트인가요?
Vegeta는 HTTP 서비스에 일정한 요청 속도로 부하를 주도록 설계된 HTTP 부하 테스트 도구입니다. CLI 프로그램으로 실행하면 attack, encode, report, plot 명령을 UNIX 파이프로 연결해 사용할 수 있고, Go 라이브러리로 가져와 코드에서 부하 테스트를 실행할 수도 있습니다.
대상은 HTTP 메시지 형식의 일반 텍스트 목록이나 다른 프로그램이 생성한 JSON 객체 스트림으로 전달할 수 있어 요청을 동적으로 생성할 수 있습니다. attack 명령으로 요청 속도, 실행 시간, 워커 수, 타임아웃, TLS 인증서, HTTP/2, keep-alive, 연결 제한, 사용자 지정 DNS 리졸버를 설정할 수 있습니다. 결과는 텍스트나 JSON으로 요약하거나 히스토그램으로 구간화할 수 있으며, HDR histogram 데이터로 내보내거나 대화형 HTML 지연 시간 그래프로 표시할 수도 있습니다.
Vegeta는 부하 테스트 중 Prometheus exporter도 제공하며, 여러 머신에 목표 요청 속도를 분산하고 결과 파일을 병합하는 방식으로 분산 테스트를 지원합니다.
핵심 기능
- 01CLI 또는 Go 라이브러리로 사용할 수 있는 일정한 속도의 HTTP 부하 테스트.
- 02텍스트 목록이나 JSON 스트림으로 대상을 지정할 수 있으며, 입력을 지연 생성할 수도 있습니다.
- 03백분위수, 상태 코드 히스토그램, 오류 목록을 포함한 지연 시간 보고서.
- 04텍스트, JSON, 히스토그램, HDR histogram 출력 형식.
- 05시간에 따른 요청 지연 시간을 보여 주는 대화형 HTML 그래프.
- 06부하 테스트 중 사용할 수 있는 내장 Prometheus exporter.
- 07HTTP/2, TLS 클라이언트 인증서, 사용자 지정 헤더 및 DNS 리졸버 지원.
활용 사례
- 고정된 요청 속도에서 API 엔드포인트의 지연 시간이 어떻게 변하는지 측정.
- 여러 머신에 목표 요청 속도를 분산해 분산 부하 테스트 실행.
- 스크립트나 데이터 파이프라인에서 동적으로 생성한 요청을 서비스에 전달.
- Prometheus exporter를 통해 Grafana에서 부하 테스트 지표 모니터링.
빠른 시작
- 1
Homebrew로 macOS에 설치
brew update && brew install vegeta - 2
pacman으로 Arch Linux에 설치
pacman -S vegeta - 3
테스트 실행: 5초 동안 초당 50개의 GET 요청을 보내고 보고서 출력
echo "GET http://localhost/" | vegeta attack -duration=5s | tee results.bin | vegeta report
사용 전 알아둘 점
- 그 외 플랫폼에서는 설치 스크립트와 바이너리가 릴리스 페이지에만 제공되므로, 설정 방법은 OS에 따라 다릅니다.
포함된 컬렉션
토픽
자주 묻는 질문
- vegeta은(는) 무엇인가요?
- 일정한 요청 속도로 부하를 보내고 지연 시간 통계를 제공하는 HTTP 부하 테스트 CLI 도구이자 Go 라이브러리입니다. Vegeta는 HTTP 서비스에 일정한 요청 속도로 부하를 주도록 설계된 HTTP 부하 테스트 도구입니다. CLI 프로그램으로 실행하면 attack, encode, report, plot 명령을 UNIX 파이프로 연결해 사용할 수 있고, Go 라이브러리로 가져와 코드에서 부하 테스트를 실행할 수도 있습니다.
- vegeta은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- vegeta은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- vegeta은(는) 아직 유지보수되고 있나요?
- 6개월 이내 업데이트. vegeta의 마지막 커밋은 2026년 9월 24일입니다.
- vegeta은(는) 어디에 사용할 수 있나요?
- 고정된 요청 속도에서 API 엔드포인트의 지연 시간이 어떻게 변하는지 측정. 여러 머신에 목표 요청 속도를 분산해 분산 부하 테스트 실행. 스크립트나 데이터 파이프라인에서 동적으로 생성한 요청을 서비스에 전달. Prometheus exporter를 통해 Grafana에서 부하 테스트 지표 모니터링.
- vegeta는 어떻게 설치하나요?
- Homebrew로 macOS에 설치: brew update && brew install vegeta pacman으로 Arch Linux에 설치: pacman -S vegeta 테스트 실행: 5초 동안 초당 50개의 GET 요청을 보내고 보고서 출력: echo "GET http://localhost/" | vegeta attack -duration=5s | tee results.bin | vegeta report
- vegeta은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/tsenart/vegeta
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
웹 애플리케이션과 기타 서비스의 부하 및 성능을 측정하는 오픈 소스 Java 애플리케이션입니다.
고성능 요청 처리를 위해 fasthttp를 기반으로 만든 Go 언어의 크로스 플랫폼 HTTP(S) 벤치마킹 및 부하 테스트 CLI 도구입니다.
rakyll/hey에서 영감을 받아 Rust로 만든 커맨드라인 HTTP 부하 생성기이며, 실시간 터미널 UI를 제공합니다.
fasthttp로 요청을 보내고, 실시간 터미널 화면과 웹 차트를 제공하는 Go 기반 HTTP(S) 부하 테스트 CLI입니다.
L4 로드 밸런서, 게이트웨이, 서버 벤치마킹을 위한 DPDK 기반 네트워크 트래픽 생성기 및 부하 테스트 도구입니다.