Home
DESIGN.mdStar on GitHub

Load testing
for engineering teams

k6 is an open-source tool that makes load testing easy for developers and QA engineers. Script tests in JavaScript, run anywhere.

Brand
Surfaces
Text
Semantic · test results
Rubik / 700
≈ TT Pro · Display 50px
Load testing made easy
Rubik ≈ TT Pro
Rubik / 600
Heading · 22px
Prevent failures. Release with confidence.
Rubik
JetBrains Mono / 500
Metric value
p(95)=241ms
JetBrains Mono
Rubik / 400
Body · 15px
Run tests on your own machines, in our cloud, or both — with one tool and one script.
Rubik
JetBrains Mono / 400
Script · 13px
check(res, { 'status is 200': (r) => r.status === 200 })
k6 API
script.js
import http from 'k6/http';
import { check, sleep } from 'k6';

export const options = {
  stages: [
    { duration: '30s', target: 50 },
    { duration: '1m',  target: 50 },
    { duration: '30s', target: 0 },
  ],
  thresholds: {
    http_req_duration: ['p(95)<500'],
  },
};

export default function () {
  const res = http.get('https://test.k6.io');
  check(res, { 'status is 200': (r) => r.status === 200 });
  sleep(1);
}
test.k6.io · ramping-vus
complete
VUs
50
peak
Req / s
352
avg
p(95)
241ms
latency
Iterations
42,318
total
vus http_reqs/s ramp-up · hold · ramp-down
✓ checks100.00% 42318 / 42318
http_req_durationavg=142ms p(95)=241ms max=612ms
http_reqs42318 352.0/s
iteration_durationavg=1.14s med=1.13s
data_received218 MB 1.8 MB/s
vus / vus_max50 / 50
Buttons
Badges · results
✓ passed ✗ failed threshold p(95)
http browser gRPC WebSocket
Threshold (input)
test fails if a threshold is breached
Radius
btn · 8
card · 12
pill · full
Do
Lead with k6 purple (#7D64FF) on lavender-tinted surfaces; use cyan as the data spark.
Show the real k6 vocabulary: http_req_duration, p(95), checks, vus.
Color results by state — green pass, red fail; keep VUs purple, throughput cyan.
Write example scripts in JavaScript with the genuine k6 module API.
Don't
Use pure white/black backgrounds — the canvas is lavender (#F9F8FC) / deep purple (#0E0A1F).
Invent metric names — use k6's actual output fields.
Overuse cyan; it's a spark for data, not a second brand color.
Fake a load curve — VUs ramp through defined stages; throughput follows.