---
title: "Export test results | Grafana Cloud documentation"
description: "Export your k6 test results as a PDF report or CSV file."
---

# Export test results

Your Grafana Cloud k6 test results provide a comprehensive overview of your application performance trends, which can help you detect patterns and uncover performance issues.

You can export your test results in two formats:

- A Grafana dashboard summary, which can then be exported as a PDF.
- A CSV file.

## Export as Grafana dashboard summary

You can export your test results as a dashboard to track and share your data with other team members. The exported dashboard serves as an executive summary of the test results’ most relevant metrics and performance data.

### Before you begin

- You must have a Grafana Cloud account with the `dashboards:create` or `dashboards:write` permission.
  
  - If you only have the `dashboards:create` permission, you can only export summaries to the root folder.

For more information, refer to [RBAC permissions, actions, and scopes](/docs/grafana-cloud/account-management/authentication-and-permissions/access-control/custom-role-actions-scopes/).

### Export summary to dashboard

To export a summary:

1. Navigate to a specific test result.
2. Click the three-dots icon in the top right corner to open the test results menu.
3. Select **Export summary**.

This action opens a dialog box where you can choose a name and destination for the summary and customize its layout.

#### Choose a folder

> Note
> 
> You can only see this step if you have the `dashboards:write` permission.
> 
> Creating folders also requires the `folders:create` permission. If you don’t have permission to create folders, the option to create one won’t appear.

Under **Folder**, you can select the folder where your dashboard should be created.

You can also create a folder by selecting the **Folder** field, typing in the new folder name, and selecting **Create in a new folder called**.

#### Change layout

The editor includes several sections that you can include or exclude from your summary. Each section represents a time series graph for that metric over the test run time.

To customize the data included in the summary:

1. Expand the **Sections** section in the export dialog box.
2. Select the sections you want to include/exclude.

Summaries can contain HTTP and browser results. Different options are available depending on the data available in your test run.

If your test has HTTP data, the sections include:

Expand table

| Option        | Description                                 |
|---------------|---------------------------------------------|
| Enabled       | Include HTTP results in the summary.        |
| Response time | The response time in different percentiles. |
| Throughput    | The request rate.                           |
| Bandwidth     | The amount of data sent and received.       |

If your test has browser data, the sections include:

Expand table

| Option        | Description                                                   |
|---------------|---------------------------------------------------------------|
| Enabled       | Include browser results in the summary.                       |
| Loading       | Web Vitals affecting the perceived load speed.                |
| Interactivity | Web Vitals affecting user interactions.                       |
| Rendering     | Web Vitals affecting the rendering performance and stability. |

#### Additional options

You can find additional options under **Options**.

Expand table

| Option             | Description                                                   |
|--------------------|---------------------------------------------------------------|
| Include scenarios  | Add charts for each scenario in the test results.             |
| Include load zones | Add sections summarizing the test results for each load zone. |

### Edit summary and share as PDF

After generating the summary dashboard, you can [edit](/docs/grafana/latest/dashboards/build-dashboards/) and [share it](/docs/grafana/latest/dashboards/share-dashboards-panels/) like any other dashboard.

For instance, you can share the summary as a PDF by using the [PDF export feature](/docs/grafana/latest/dashboards/share-dashboards-panels/#export-dashboard-as-pdf) in Grafana.

## Export as CSV

To export a test result as a CSV file:

1. Select the test result you want to export.
2. Click the three-dots icon in the top-right, and select **Export data**.
   
   1. If you have already exported the data from a test result, you’ll see a **Download export data** option instead.
3. Click **Confirm** in the dialog box.

Depending on your test result, the CSV export might take some time. You can:

- Wait for the dialog box to update, and click **Download** once the report is ready, or;
- Close the tab and download the report when it’s ready by going to the test result page, clicking the three-dots icon in the top right, and selecting **Download export data**.

The exported data you can download is a ZIP file that contains a number of CSV files.

Each metric, such as VUs and HTTP requests, has its own separate file. The export also contains a `metrics.csv` file with the list of exported metrics.

A typical k6 HTTP test includes the following files:

Expand table

| File name                                        | Metric                                                                        | Columns                                                                                                                                                    |
|--------------------------------------------------|-------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `metrics.csv`                                    | Index of exported metrics                                                     | `metric`,`type`,`origin`                                                                                                                                   |
| `metric_checks.csv`                              | [checks](/using-k6/metrics/)                                                  | `time`,`metric`,`scenario`,`group`,`check`,`load_zone`,`tags`,`nz_count`,`count`                                                                           |
| `metric_data_received.csv`                       | [data\_received](/using-k6/metrics/)                                          | `time`,`metric`,`scenario`,`group`,`load_zone`,`tags`,`count`                                                                                              |
| `metric_data_sent.csv`                           | [data\_sent](/using-k6/metrics/)                                              | `time`,`metric`,`scenario`,`group`,`load_zone`,`tags`,`count`                                                                                              |
| `metric_group_duration.csv`                      | [group\_duration](/using-k6/tags-and-groups/)                                 | `time`,`metric`,`scenario`,`group`,`load_zone`,`tags`,`count`,`min`,`mean`,`median`,`p95`,`p99`,`max`,`stdev`                                              |
| `metric_http_reqs.csv`                           | [http\_reqs](/using-k6/metrics/#http-specific-built-in-metrics)               | `time`,`metric`,`group`,`scenario`,`name`,`method`,`status`,`expected_response`,`load_zone`,`tags`,`count`                                                 |
| `metric_http_req_duration.csv`                   | [http\_req\_duration](/using-k6/metrics/#http-specific-built-in-metrics)      | `time`,`metric`,`group`,`scenario`,`name`,`method`,`status`,`expected_response`,`load_zone`,`tags`,`count`,`min`,`mean`,`median`,`p95`,`p99`,`max`,`stdev` |
| `metric_iteration_duration.csv`                  | [iteration\_duration](/using-k6/metrics/)                                     | `time`,`metric`,`scenario`,`group`,`load_zone`,`tags`,`count`,`min`,`mean`,`median`,`p95`,`p99`,`max`,`stdev`                                              |
| `metric_iterations.csv`                          | [iterations](/using-k6/metrics/)                                              | `time`,`metric`,`scenario`,`group`,`load_zone`,`tags`,`count`                                                                                              |
| `metric_load_generator_ cpu_percent.csv`         | [load\_generator\_cpu\_percent](/using-k6/metrics/)                           | `time`,`metric`,`scenario`,`group`,`load_zone`,`tags`,`count`,`min`,`mean`,`max`,`last`                                                                    |
| `metric_load_generator_ file_handles.csv`        | [load\_generator\_file\_handles](/using-k6/metrics/)                          | `time`,`metric`,`scenario`,`group`,`load_zone`,`tags`,`count`,`min`,`mean`,`max`,`last`                                                                    |
| `metric_load_generator_ memory_used_percent.csv` | [load\_generator\_memory\_used\_percent](/using-k6/metrics/)                  | `time`,`metric`,`scenario`,`group`,`load_zone`,`tags`,`count`,`min`,`mean`,`max`,`last`                                                                    |
| `metric_vus.csv`                                 | [vus](/using-k6/metrics/)                                                     | `time`,`metric`,`scenario`,`group`,`load_zone`,`tags`,`count`,`min`,`mean`,`max`,`last`                                                                    |
| `metric_vus_max.csv`                             | [vus\_max](/using-k6/metrics/)                                                | `time`,`metric`,`scenario`,`group`,`load_zone`,`tags`,`count`,`min`,`mean`,`max`,`last`                                                                    |
| `metric_myCustomCounter.csv`                     | User-defined `myCustomCounter` [Counter](/javascript-api/k6-metrics/counter/) | `time`,`metric`,`scenario`,`group`,`load_zone`,`tags`,`count`                                                                                              |
| `metric_myCustomGauge.csv`                       | User-defined `myCustomGauge` [Gauge](/javascript-api/k6-metrics/gauge/)       | `time`,`metric`,`scenario`,`group`,`load_zone`,`tags`,`count`,`min`,`mean`,`max`,`last`                                                                    |
| `metric_myCustomRate.csv`                        | User-defined `myCustomRate` [Rate](/javascript-api/k6-metrics/rate/)          | `time`,`metric`,`scenario`,`group`,`load_zone`,`tags`,`nz_count`,`count`                                                                                   |
| `metric_myCustomTrend.csv`                       | User-defined `myCustomTrend` [Trend](/javascript-api/k6-metrics/trend/)       | `time`,`metric`,`scenario`,`group`,`load_zone`,`tags`,`count`,`min`,`mean`,`median`,`p95`,`p99`,`max`,`stdev`                                              |

The following table is a reference for the columns in the CSV data, with examples, data types, and descriptions.

Expand table

| Column      | Example                                | Type (unit)      | Description                                                                                          |
|-------------|----------------------------------------|------------------|------------------------------------------------------------------------------------------------------|
| `time`      | 2019-03-25 11:12:48.927949+00:00       | `datetime` (UTC) | The ISO-8601 timestamp when this data point was captured (when the HTTP request was made).           |
| `metric`    | `http_req_duration`                    | string           | The metric name that this data point represents.                                                     |
| `group`     | `my group`                             | string           | The group name [`group()`](/using-k6/tags-and-groups) from where this request was made.              |
| `scenario`  | default                                | string           | The name of the scenario that this metric was collected in.                                          |
| `url`       | `https://quickpizza.grafana.com/admin` | string           | The URL requested.                                                                                   |
| `method`    | GET                                    | string           | The HTTP method of the request that this data point represents.                                      |
| `status`    | 200                                    | number           | The HTTP response status code of the request that this data point represents.                        |
| `count`     | 1.0                                    | number           | Number of samples that this data point represents (if &gt; 1 `response_time` is an aggregate value). |
| `load_zone` | amazon:us:ashburn                      | string           | The load zone where the requests were sent from.                                                     |
| `tags`      | {“staticAsset”:“true”}                 | string           | JSON formatted list of `{"name": "value"}` tags as specified for the request in the script.          |
| `min`       | 1.008016                               | number (ms)      | The minimum response time for samples collected within the time bucket.                              |
| `mean`      | 3.008016                               | number (ms)      | The mean response time for samples collected within the time bucket.                                 |
| `median`    | 5.468016                               | number (ms)      | The median response time for samples collected within the time bucket.                               |
| `p95`       | 10.10816                               | number (ms)      | The 95th percentile response time for samples collected within the time bucket.                      |
| `p99`       | 14.08016                               | number (ms)      | The 99th percentile response time for samples collected within the time bucket.                      |
| `max`       | 15.08016                               | number (ms)      | The maximum response time for samples collected within the time bucket.                              |
| `stdev`     | 0.075112                               | number (ms)      | The standard deviation time for samples collected within the time bucket.                            |
