> ## Documentation Index
> Fetch the complete documentation index at: https://mintlify.com/grafana/k6-docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Integrations

> Third-party integrations and tools that work with k6

# Integrations

k6 integrates with a wide ecosystem of tools for monitoring, visualization, CI/CD, and more.

## Observability and monitoring

<CardGroup cols={2}>
  <Card title="Grafana" icon="chart-line" href="/results/grafana-dashboards">
    Visualize k6 metrics in Grafana dashboards with InfluxDB, Prometheus, or k6 Cloud.
  </Card>

  <Card title="Prometheus" icon="chart-simple">
    Export k6 metrics to Prometheus for long-term storage and alerting.

    ```bash theme={null}
    k6 run --out experimental-prometheus-rw script.js
    ```
  </Card>

  <Card title="InfluxDB" icon="database">
    Stream real-time metrics to InfluxDB for analysis and visualization.

    ```bash theme={null}
    k6 run --out influxdb=http://localhost:8086 script.js
    ```
  </Card>

  <Card title="Datadog" icon="dog">
    Send k6 metrics to Datadog for unified observability.

    ```bash theme={null}
    k6 run --out datadog script.js
    ```
  </Card>
</CardGroup>

## CI/CD platforms

### GitHub Actions

Use the official k6 action:

```yaml theme={null}
name: Load Test
on: [push]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: grafana/k6-action@v0.3.1
        with:
          filename: test.js
          flags: --vus 50 --duration 10s
```

### GitLab CI

```yaml theme={null}
load_test:
  image: grafana/k6:latest
  script:
    - k6 run test.js
  artifacts:
    reports:
      junit: summary.xml
```

### Jenkins

```groovy theme={null}
pipeline {
  agent any
  stages {
    stage('Load Test') {
      steps {
        sh 'k6 run --out json=results.json test.js'
      }
    }
  }
}
```

### CircleCI

```yaml theme={null}
version: 2.1
jobs:
  load-test:
    docker:
      - image: grafana/k6:latest
    steps:
      - checkout
      - run: k6 run test.js
```

## Test generation

<CardGroup cols={2}>
  <Card title="k6 Studio" icon="desktop" href="/studio/overview">
    Desktop app for recording and generating k6 scripts from browser interactions.
  </Card>

  <Card title="Postman" icon="paper-plane">
    Convert Postman collections to k6 scripts:

    ```bash theme={null}
    postman-to-k6 collection.json -o script.js
    ```
  </Card>

  <Card title="HAR files" icon="file-code">
    Generate tests from HAR (HTTP Archive) files:

    ```bash theme={null}
    har-to-k6 archive.har -o script.js
    ```
  </Card>

  <Card title="OpenAPI" icon="book">
    Generate tests from OpenAPI specifications:

    ```bash theme={null}
    openapi-generator generate -g k6 -i api.yaml
    ```
  </Card>
</CardGroup>

## Cloud platforms

### Grafana Cloud k6

Run tests in the cloud with built-in dashboards and insights:

```bash theme={null}
k6 cloud script.js
```

[Learn more about Grafana Cloud k6](/cloud/overview)

### AWS

* Run k6 on EC2 instances for distributed testing
* Use AWS Lambda with k6 for serverless testing
* Store results in CloudWatch or S3

### Azure

* Deploy k6 using Azure Container Instances
* Use Azure Load Testing (powered by k6)
* Stream metrics to Azure Monitor

### Google Cloud

* Run k6 on GKE (Google Kubernetes Engine)
* Use Cloud Run for serverless k6 tests
* Export metrics to Cloud Monitoring

## Kubernetes

<Card title="k6-operator" icon="dharmachakra">
  Run distributed k6 tests on Kubernetes clusters.

  ```yaml theme={null}
  apiVersion: k6.io/v1alpha1
  kind: K6
  metadata:
    name: k6-sample
  spec:
    parallelism: 4
    script:
      configMap:
        name: test-script
  ```

  [Learn more about distributed testing](/testing-guides/distributed-tests)
</Card>

## Test data and mocking

<AccordionGroup>
  <Accordion title="Faker.js">
    Generate realistic test data:

    ```javascript theme={null}
    import { Faker } from 'https://esm.sh/@faker-js/faker';

    const faker = new Faker();

    export default function () {
      const user = {
        name: faker.person.fullName(),
        email: faker.internet.email(),
      };
    }
    ```
  </Accordion>

  <Accordion title="JSON Server">
    Mock REST APIs for testing:

    ```bash theme={null}
    # Start mock server
    json-server --watch db.json

    # Test against it
    k6 run test.js
    ```
  </Accordion>

  <Accordion title="WireMock">
    Stub HTTP services:

    ```javascript theme={null}
    import http from 'k6/http';

    export default function () {
      http.get('http://localhost:8080/api/users');
    }
    ```
  </Accordion>
</AccordionGroup>

## Reporting

### HTML reports

Generate HTML reports from k6 results:

```bash theme={null}
k6 run --out json=results.json script.js
k6-reporter results.json
```

### JUnit reports

For CI/CD integration:

```javascript theme={null}
import { jUnit, textSummary } from 'https://jslib.k6.io/k6-summary/0.0.1/index.js';

export function handleSummary(data) {
  return {
    'stdout': textSummary(data, { indent: ' ', enableColors: true }),
    'summary.xml': jUnit(data),
  };
}
```

### CSV/JSON export

Export metrics to files:

```bash theme={null}
k6 run --out csv=results.csv script.js
k6 run --out json=results.json script.js
```

## Notification and alerting

<CardGroup cols={2}>
  <Card title="Slack" icon="slack">
    Send test results to Slack channels.
  </Card>

  <Card title="PagerDuty" icon="bell">
    Trigger incidents on test failures.
  </Card>

  <Card title="Email" icon="envelope">
    Email test summaries and alerts.
  </Card>

  <Card title="Webhooks" icon="webhook">
    POST results to custom endpoints.
  </Card>
</CardGroup>

## Extensions ecosystem

<Info>
  k6 has a rich extension ecosystem for specialized testing needs.
</Info>

[Explore k6 extensions](/extensions/explore)

## Community tools

* **k6-jslib-utils** - Utility functions for k6 scripts
* **k6-jslib-aws** - AWS SDK for k6
* **k6-jslib-httpx** - Enhanced HTTP client
* **k6-chaijs** - Chai assertions for k6

## Related resources

<CardGroup cols={2}>
  <Card title="Automated testing" icon="robot" href="/testing-guides/automated-testing">
    CI/CD integration guide
  </Card>

  <Card title="Results output" icon="chart-bar" href="/results/overview">
    Exporting and visualizing results
  </Card>

  <Card title="Extensions" icon="puzzle-piece" href="/extensions/overview">
    Extending k6 functionality
  </Card>

  <Card title="Grafana Cloud k6" icon="cloud" href="/cloud/overview">
    Cloud-based test execution
  </Card>
</CardGroup>
