All Projects → grafana → k6

grafana / k6

Licence: AGPL-3.0 license
A modern load testing tool, using Go and JavaScript - https://k6.io

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to k6

ddosify
High-performance load testing tool, written in Golang.
Stars: ✭ 3,788 (-80.84%)
Mutual labels:  load-testing, load-generator
f1
A tool for writing load test scenarios in Golang with a powerful command line runner
Stars: ✭ 81 (-99.59%)
Mutual labels:  load-testing, load-generator
K6
A modern load testing tool, using Go and JavaScript - https://k6.io
Stars: ✭ 14,829 (-25%)
Mutual labels:  load-testing, load-generator
Locust
Scalable user load testing tool written in Python
Stars: ✭ 17,763 (-10.16%)
Mutual labels:  load-testing, load-generator
Sangrenel
Apache Kafka load testing "...basically a cloth bag filled with small jagged pieces of scrap iron"
Stars: ✭ 180 (-99.09%)
Mutual labels:  load-testing
Goose
Load testing tool, inspired by Locust
Stars: ✭ 151 (-99.24%)
Mutual labels:  load-testing
Carrot
Distributed WebSocket and HTTP Load Testing Framework in Go
Stars: ✭ 143 (-99.28%)
Mutual labels:  load-testing
Shadowreader
Serverless load testing for replaying website traffic. Powered by AWS Lambda.
Stars: ✭ 138 (-99.3%)
Mutual labels:  load-testing
jagtester
Express server load tester with middleware level data reporting
Stars: ✭ 57 (-99.71%)
Mutual labels:  load-testing
Ali
Generate HTTP load and plot the results in real-time
Stars: ✭ 3,055 (-84.55%)
Mutual labels:  load-testing
Docker Locust
Docker image for the Locust.io open source load testing tool
Stars: ✭ 179 (-99.09%)
Mutual labels:  load-testing
Performance Plugin
Performance Test Running and Reporting for Jenkins CI
Stars: ✭ 176 (-99.11%)
Mutual labels:  load-testing
Rabbitmq Perf Test
A load testing tool
Stars: ✭ 197 (-99%)
Mutual labels:  load-testing
K8s Testsuite
Test suite for Kubernetes
Stars: ✭ 149 (-99.25%)
Mutual labels:  load-testing
Bombardier
Fast cross-platform HTTP benchmarking tool written in Go
Stars: ✭ 2,952 (-85.07%)
Mutual labels:  load-testing
Vex
vex is a small PHP app that sends some load to a web application
Stars: ✭ 142 (-99.28%)
Mutual labels:  load-testing
Httprunner
One-stop solution for HTTP(S) testing, written in Python.
Stars: ✭ 2,628 (-86.71%)
Mutual labels:  load-testing
Yandex Tank
Load and performance benchmark tool
Stars: ✭ 2,110 (-89.33%)
Mutual labels:  load-testing
Clj Gatling
Load testing library for Clojure
Stars: ✭ 167 (-99.16%)
Mutual labels:  load-testing
Postman To K6
Converts Postman collections to k6 script code
Stars: ✭ 180 (-99.09%)
Mutual labels:  load-testing

k6

Like unit testing, for performance

Modern load testing for developers and testers in the DevOps era.

Github release Build status Go Report Card Codecov branch
@k6_io on Twitter Slack channel

Download · Documentation · Community Forum


---


k6 is a modern load-testing tool, built on our years of experience in the performance and testing industries. It's built to be powerful, extensible, and full-featured. The key design goal is to provide the best developer experience.

Its core features are:

  • Configurable load generation. Even lower-end machines can simulate lots of traffic.
  • Tests as code. Reuse scripts, modularize logic, version control, and integrate tests with your CI.
  • A full-featured API. The scripting API is packed with features that help you simulate real application traffic.
  • An embedded JavaScript engine. The performance of Go, the scripting familiarity of JavaScript.
  • Multiple Protocol support. HTTP, WebSockets, gRPC, and more.
  • Large extension ecosystem. You can extend k6 to support your needs. And many people have already shared their extensions with the community!
  • Flexible metrics storage and visualization. Summary statistics or granular metrics, exported to the service of your choice.

This is what load testing looks like in the 21st century.

Example script

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

// Test configuration
export const options = {
  thresholds: {
    // Assert that 99% of requests finish within 3000ms.
    http_req_duration: ["p(99) < 3000"],
  },
  // Ramp the number of virtual users up and down
  stages: [
    { duration: "30s", target: 15 },
    { duration: "1m", target: 15 },
    { duration: "20s", target: 0 },
  ],
};

// Simulated user behavior
export default function () {
  let res = http.get("https://test-api.k6.io/public/crocodiles/1/");
  // Validate response status
  check(res, { "status was 200": (r) => r.status == 200 });
  sleep(1);
}

You can run scripts like this on the CLI, or in your CI, or across a Kubernetes cluster.

Documentation

The docs cover all aspects of using k6. Some highlights include:

  • Get Started. Install, run a test, inspect results.
  • HTTP requests. Have your virtual users use HTTP methods. Or, check the other Protocols.
  • Thresholds. Set goals for your test, and codify your SLOs.
  • Options. Configure your load, duration, TLS certificates, and much, much more.
  • Scenarios. Choose how to model your workload: open models, closed models, constant RPS, fixed iterations, and more.
  • Results output. Study, filter, and export your test results.
  • JavaScript API. Reference and examples of all k6 modules.
  • Extensions. Extend k6 for new protocols and use cases.

These links barely scratch the surface! If you're looking for conceptual information, you can read about Test types, Test strategies, or one of the many informative Blog posts.

Contribute

If you want to contribute or help with the development of k6, start by reading CONTRIBUTING.md. Before you start coding, it might be a good idea to first discuss your plans and implementation details with the k6 maintainers—especially when it comes to big changes and features. You can do this in the GitHub issue for the problem you're solving (create one if it doesn't exist).

Note: To disclose security issues, refer to SECURITY.md.

Support

To get help, report bugs, suggest features, and discuss k6 with others, refer to SUPPORT.md.

License

k6 is distributed under the AGPL-3.0 license.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].