Menu

Important: This documentation is about an older version. It's relevant only to the release noted, many of the features and functions have been updated or replaced. Please view the current version.

Open source

CSV

You can output granular data points in CSV format. To do so, use k6 run with the --out flag. Pass the path for your CSV file as the flag argument:

bash
$ k6 run --out csv=test_results.csv script.js

You can also get the results gzipped, like this:

bash
$ k6 run --out csv=test_results.gz script.js

To inspect the output in real time, you can use a command like tail -f on the file you save:

bash
$ tail -f test_results.csv

CSV format

The CSV result file will look something like this:

plain
metric_name,timestamp,metric_value,check,error,error_code,group,method,name,proto,scenario,status,subproto,tls_version,url,extra_tags
http_reqs,1595325560,1.000000,,,,,GET,http://test.k6.io,HTTP/1.1,default,200,,,http://test.k6.io,
http_req_duration,1595325560,221.899000,,,,,GET,http://test.k6.io,HTTP/1.1,default,200,,,http://test.k6.io,
http_req_blocked,1595325560,225.275000,,,,,GET,http://test.k6.io,HTTP/1.1,default,200,,,http://test.k6.io,
http_req_connecting,1595325560,217.680000,,,,,GET,http://test.k6.io,HTTP/1.1,default,200,,,http://test.k6.io,
http_req_tls_handshaking,1595325560,0.000000,,,,,GET,http://test.k6.io,HTTP/1.1,default,200,,,http://test.k6.io,
http_req_sending,1595325560,0.112000,,,,,GET,http://test.k6.io,HTTP/1.1,default,200,,,http://test.k6.io,
http_req_waiting,1595325560,220.280000,,,,,GET,http://test.k6.io,HTTP/1.1,default,200,,,http://test.k6.io,
http_req_receiving,1595325560,1.507000,,,,,GET,http://test.k6.io,HTTP/1.1,default,200,,,http://test.k6.io,
vus,1595325560,1.000000,,,,,,,,,,,,,
vus_max,1595325560,20.000000,,,,,,,,,,,,,
checks,1595325561,1.000000,status is 200,,,,,,,default,,,,,
checks,1595325561,0.000000,response body,,,,,,,default,,,,,
data_sent,1595325561,76.000000,,,,,,,,default,,,,,
data_received,1595325561,11045.000000,,,,,,,,default,,,,,
iteration_duration,1595325561,1449.049580,,,,,,,,default,,,,,
iterations,1595325561,1.000000,,,,,,,,default,,,,,

Each entry in the report represents a metric, metric_name, along with its value, metric_value, at time, timestamp. If an error happens, then the error along with the error_code fields will be populated.

CSV options

k6 provides a few options to help you configure your CSV output:

optionConfiguresPossible valuesDefaultEnv. variable
saveIntervalThe time intervals at which k6 writes to the CSVEither a string with time units("1m45s"), or a number of milliseconds"1s"K6_CSV_SAVE_INTERVAL
timeFormatThe timestamp formatunix, unix_nano, unix_micro, unix_milli, rfc3339, rfc3339_nanounixK6_CSV_TIME_FORMAT
fileNameThe file name and path where output is savedN/Afile.csvK6_CSV_FILENAME

Read more