When a test finishes, k6 prints a summary of aggregated results to stdout. This summary provides a comprehensive overview of your test execution, organized by thresholds, checks, and metric categories.
Checks show pass/fail ratios for assertions in your test:
checks_total.......................: 90 13.122179/schecks_succeeded...................: 100.00% 90 out of 90checks_failed......................: 0.00% 0 out of 90✓ test-api.k6.io is up✓ status is 200
Unlike thresholds, failed checks do not cause k6 to exit with an error. They’re for informational purposes.
Metrics are organized into categories based on their source:CUSTOM - Your custom metrics using Trend, Counter, Gauge, or RateHTTP - Metrics from the k6/http module:
http_req_duration - Total request time
http_req_blocked - Time waiting for a free connection slot
http_req_connecting - Time establishing TCP connection
http_req_tls_handshaking - Time performing TLS handshake
http_req_sending - Time sending request data
http_req_waiting - Time waiting for server response (TTFB)
http_req_receiving - Time receiving response data
http_req_failed - Rate of failed requests
http_reqs - Total number of requests
EXECUTION - Test execution metrics:
iteration_duration - Time to complete one full iteration
iterations - Total number of iterations completed
vus - Current number of active virtual users
vus_max - Maximum VUs allocated
NETWORK - Data transfer metrics:
data_received - Total data received
data_sent - Total data sent
Categories only appear when relevant. For example, browser metrics appear only when using k6/browser.
k6 provides several options to customize the summary output:
# Choose summary modek6 run --summary-mode=full script.js# Disable summaryk6 run --no-summary script.js# Select trend statisticsk6 run --summary-trend-stats="min,avg,max,p(95),p(99)" script.js# Set time unitk6 run --summary-time-unit=ms script.js