Next generation load testing with Load Impact

k6 + Load Impact Insights + Cloud Execution

Developer centric load testing with k6

Using  k6, developers can run fast, daily load tests, on their own machines (local testing, behind the firewall), as part of their Continuous Integration process. QA testers can run more complex tests in the cloud with Load Impact Cloud Execution. Load Impact Insights lets your team store and analyze results and see trends.

k6 CLI

Run performance tests locally and in the cloud

Your test scripts work unchanged across single and multi-machine (cloud) execution 

Local tests on your computer

Run k6 tests from your local machine to debug a test script or to get quick performance feedback before pushing code to version control and CI.

Self-managed test environments

Run performance tests in k6 from on-premises machines or cloud servers under your own AWS, Microsoft Azure or GCP account. You manage the infrastructure to meet your testing needs.

Load Impact Cloud Execution

Run on Load Impact's global cloud infrastructure to scale out to much larger tests-- up to 5000 Virtual Users (VUs). Avoid the hassles of managing the cloud infrastructure for performance testing. Generate test loads from up to 10 different global locations.

Test scripts based on familiar and powerful ES6 JavaScript

Modules

Create ES6 JS modules that can be reused across tests and teams to build a foundational performance testing library for your organization.

Checks and Thresholds

Checks (like asserts) are used to validate functional aspects of your test. Thresholds are the essential feature that you use to specify the pass/fail criteria of your tests. You can create thresholds based on any of the standard metrics collected by k6, as well as any custom metrics that you define.

HTTP/1.1, HTTP/2 and WebSocket

Ready for the present and the future  k6 supports performance testing of systems that talk HTTP/1.1 HTTP/2 and WebSocket.

Batteries included standard library

Besides the standard ES6 JS APIs, k6 comes bundled with APIs to handle Cookies, Crypto, Encodings, Environment variables, HTML forms, HTML parsing, Multipart requests, TLS client certificates, TLS ciphers & versions and more.

script.js

import http from "k6/http";
import { group, sleep, check } from "k6";

// Get login credentials from env vars
let email = __ENV.EMAIL;
let password = __ENV.PASSWORD;

export default function() {
    // Login to get API session token
    let res = http.post("https://api.loadimpact.com/v3/account/login",
        JSON.stringify({ email: email, password: password }),
        { headers: { "Content-Type": "application/json" } }
    );

    sleep(1);

    // Extract API session token from JSON response
    let apiToken = res.json().token.key;

    // Use session token to make API requests
    res = http.get("https://api.loadimpact.com/v3/account/me",
        { headers: { "Authorization": "Token " + apiToken } }
    );
    check(res, {
        "status is 200": (res) => res.status === 200,
        "content-type is application/json": (res) => res.headers['Content-Type'] === "application/json",
        "content OK": (res) => JSON.parse(res.body).hasOwnProperty('organizations')
    });

    sleep(3);
}

Easy installation across platforms

  1. Download the latest k6 binary:
    $ curl -OL https://github.com/loadimpact/k6/releases/download/v0.20.0/k6-v0.20.0-linux64.tar.gz
  2. Unzip and put binary somewhere in your $PATH:
    $ tar -xzf k6-v0.20.0-linux64.tar.gz
    $ cp k6-v0.20.0-linux64/k6 /usr/local/bin
    
  3. Run your first k6 test:
    $ k6 run -u 1 -d 10s github.com/loadimpact/k6/samples/http_get.js
  1. Install k6 using Homebrew:
    $ brew tap loadimpact/k6
    $ brew install k6
  2. Run your first k6 test:
    $ k6 run -u 1 -d 10s github.com/loadimpact/k6/samples/http_get.js
  1. Download the latest k6 binary from Github.
  2. Unzip and put binary somewhere in your PATH
  3. Run your first k6 test:
    $ k6 run -u 1 -d 10s github.com/loadimpact/k6/samples/http_get.js

Stream your results to the cloud with Load Impact Insights

You can run k6 load tests from anywhere; the results can always be streamed and stored in the cloud using Load Impact Insights.

Load Impact Insights

Effectively organize your testing

Easily organize your tests into projects with role-based access control for your team members.

Performance alerts

A performance test can generate a lot of metrics data and it can be time consuming to manually look through it all. That's why we have condensed our performance testng experience into algorithms that analyses your results in real-time and surfaces issues in the form of alerts.

Flexible metric visualization

You have access to all your metrics that k6 reports in Insights, including URL and group response times, global and per-URL request rates, data sent and received as well as any custom metrics that you've defined in your script.

Powerful filtering with tags

All metrics can be filtered based on tags that you have defined in your scripts. You can even tag individual requests or custom metric samples and retrive those through Insights powerful tag filtering.

Notifications

Start a test and let us notify you via Slack, HipChat or a Webhook when it's done. If you have also setup thresholds the notification will also tell you whether the test passed or failed.

Performance trending

As code is being deployed at an ever increasing pace, it's not only important to make sure you have the necessary performance gatekeeper steps in your automation pipeline set up. It's equally important to understand how your system's performance is changing over time. With performance trending you get an overview of how the performance is changing over time, across test runs.

Streaming k6 results to Insights is this easy, really

Just login and add -o cloud :)

Terminal

$ k6 login cloud
$ k6 run -u 1 -d 10s -o cloud https://github.com/loadimpact/k6/samples/http_get.js

Integrate into your automation pipelines

Whether you run your tests from a machine that you manage or using Load Impact Cloud Execution you can easily integrate performance tests into a CI service like CircleCI, Gitlab CI and Travis CI or on-premise solutions like Jenkins CI and TeamCity CI.