Next Generation Load Testing with Load Impact

A next generation performance testing service for modern software development teams. Run tests locally (available now) or in the cloud (in beta), and at every stage of the dev cycle. Stream results to the cloud for storage, analysis and trending.

Performance testing in a DevOps environment

The shift of QA from siloed and manual to collaborative and automated means that your performance testing solution must fit into the DevOps workflow for everyone involved in software development and quality assurance.

Developers

Quality assurance starts with the people that build the systems. Testing tools need to fit their workflow and provide fast feedback.

Testers

Testing tools need to meet the needs of testers, the performance heroes that need to engage developers in testing and manage end-to-end quality assurance.

Engineering managers

Cultivating a 'performance first' team mindset while continuously shipping quality software on time is a difficult task. The tooling must be adaptable to the dev/test workflow and get out of the way as much as possible.

The next generation solution for performance testing

The next generation Load Impact solution is powered by our new open source load generator k6. You get a load testing tool for the DevOps era, with support for local as well as distributed cloud execution. Developers can run fast, daily load tests, on their own machines, as part of their Continuous Integration process. QA testers can run more complex tests in the cloud. 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 

Your computer

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

Self-managed

Run tests from on-premises machines or cloud servers under your own AWS, Microsoft Azure or GCP account. Available now.

Managed, globally distributed (beta)

For convenience and/or to scale out to much larger tests, you can move your scripts without changes to run on Load Impact's global cloud infrastructure. This is currently in beta and will be available soon.

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 is 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 future k6 supports performance testing 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 flow 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

It 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 from the Load Impact cloud service you can easily integrate performance tests into a CI services like CircleCI, Gitlab CI and Travis CI or on-premise solutions like JenkinsCI and TeamCity CI.