Vegeta logo

Vegeta

Open Source

HTTP load testing CLI written in Go — simple, fast, and pipeable.

Visit websiteGitHub

Pricing

Free / Open source

Type

Automation

Languages

Go

// VERDICT

Reach for Vegeta when you want a fast, fixed-rate HTTP benchmark with clean latency percentiles, scriptable from the shell. Skip it when you need multi-step journeys, scenario logic, or a full load-testing framework (k6/Gatling/JMeter).

Best for

Quick, constant-rate HTTP load testing from the command line - a small Go tool that hammers an endpoint at a fixed requests-per-second and reports latency percentiles, ideal for fast benchmarks.

Avoid when

You need multi-step user journeys, complex scenarios, or a full scenario-scripting framework.

CI/CD fit

Vegeta CLI · shell / Makefile · GitHub Actions · GitLab CI

Languages

Go

Team fit

Engineers wanting quick benchmarks · SREs · Teams checking a single endpoint's limits

Setup

Easy

Maintenance

Low

Learning

Beginner

Licence

Free / Open source

// BEST FOR

  • Hitting an endpoint at a precise constant request rate
  • Fast latency-percentile reports (p50/p95/p99) from the CLI
  • Quick capacity sanity checks without a full framework
  • Scripting benchmarks into shell/Makefile workflows
  • A single static binary with no runtime to install
  • Constant-arrival-rate testing (not just fixed VUs)

// AVOID WHEN

  • You need multi-step user journeys or scenario logic
  • You want a full scenario-scripting framework (k6/Gatling)
  • You need a GUI or business-tester-friendly tool
  • Complex correlations/auth flows are required
  • A managed enterprise platform is the requirement
  • You want rich dashboards rather than CLI output

// QUICK START

echo "GET https://test.example.com/" | \
  vegeta attack -rate=100 -duration=30s | vegeta report

// ALTERNATIVES TO CONSIDER

ToolChoose it when
wrkYou want maximum single-machine throughput with Lua scripting.
k6You need scenario scripting and thresholds, not just a benchmark.
LocustYou want Python-defined multi-step user behaviour.

// FEATURES

  • Constant-rate request model (RPS-based, not VUs)
  • Plain-text targets file or piped input
  • Multiple report formats — text, JSON, histogram, plot
  • Composable via Unix pipes
  • Go library API for embedded use
  • Cluster mode for distributed attacks

// PROS

  • Tiny, fast, single Go binary
  • True constant-rate model (closed-loop fairness)
  • Composes naturally with shell pipelines

// CONS

  • HTTP only — no WebSocket or gRPC
  • No GUI — CLI only
  • Limited scenario logic compared to k6 or Gatling

// EXAMPLE QA WORKFLOW

  1. Install the Vegeta binary

  2. Define a target (METHOD URL) or a targets file

  3. Run vegeta attack at a fixed rate and duration

  4. Generate a report for latency percentiles

  5. Script it into shell/Makefile/CI as a benchmark

  6. Move to a scenario framework when journeys get complex