31368 stars · AGPL-3.0 · v2.3.0 (2026-09-21), confirmed by pkg.go.dev/go.k6.io/k6/v2 · Track this in Scout
Generates web traffic from JavaScript test files kept beside the code, so a load test is repeatable rather than something somebody once did on a laptop.
▶Repo detailsthe review · specs · pros & cons · install
What it is
k6 is a load-testing program written in Go, with tests written as JavaScript files. It was made by a company called Load Impact, bought by Grafana Labs, and is now part of their open-source collection.
What it is good for. Anyone about to put something in front of more people than it has seen so far. The useful output is not one number but the shape of the failure: the point where response times stop being flat, which request is the slow one, and whether the thing falls over or merely slows down. It is also the way to find out whether a change made things worse, because the test is a file you can run again next month.
- Plain AGPL-3.0, read from
/blob/master/LICENSE.mdand unmodified, with no directory carved out. This was checked on purpose: Grafana sells a hosted load-testing service, and this archive has found seven projects whose licence file quietly differs from what the sidebar claims. This one does not. The AGPL does carry a real obligation — if you build a service on top of it and let other people use that service, you must publish your source — but that is the standard licence, not a custom one. - Tests are ordinary JavaScript files you keep beside the code, so a load test is reviewable and repeatable rather than a thing somebody did once on a laptop.
- Release v2.3.0 of 21 September 2026 added a
--scenarioflag, so you can run one part of a large test without editing the file, and a--onceflag for a single pass. The version was confirmed against Go's own package index, which dates it 21 September 2026 and reports the licence as AGPL-3.0.
- The project has moved to a version 2 line and the old address is now a dead end. Go's package index still lists
go.k6.io/k6at v1.8.1, dated 12 August 2026, and says of it that it is "not in the latest version of its module". Anything pinned to the v1 path will keep working and will stop receiving anything. - 671 open issues against 123 open pull requests, the largest issue count in this edition.
- A load test is easy to run and easy to misread. Running it from one machine over the open internet measures your own connection as much as the service, and pointing it at anything with real customers on it is a way to cause the outage you were trying to prevent. The recorded code date from the public mirror, 2 September 2026, is also older than the 21 September release, so the mirror is behind again on this row.
locustio/locustThe same job with tests written in Python rather than JavaScript, and a live web page showing the run as it happens, but it needs more machines to generate the same load.
Track this in Scout- gatling/gatling
A long-established alternative with very detailed reports, aimed at larger teams, written for the Java world and heavier to set up.
Track this in Scout - rakyll/hey
One tiny downloaded file that hammers a single web address and prints the timings, which covers the simplest case in one command and nothing beyond it.
Track this in Scout
# Debian or Ubuntu curl -fsSL https://dl.k6.io/key.gpg | sudo gpg --dearmor -o /usr/share/keyrings/k6-archive-keyring.gpg 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 # Fedora or CentOS sudo dnf install https://dl.k6.io/rpm/repo.rpm sudo dnf install k6 # macOS brew install k6 # or in a container docker pull grafana/k6 k6 run script.js
