Misplaced Pages

K6 (software)

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.
k6
Developer(s)Grafana Labs
Initial releaseJanuary 18, 2017; 7 years ago (2017-01-18)
Stable release0.54.0 / September 30, 2024; 3 months ago (2024-09-30)
Repositorygithub.com/grafana/k6
Written inJavaScript, Go
Operating systemCross-platform
TypeLoad testing
LicenseAGPL 3
Websitek6.io

K6 is an open-source load testing tool developed by Grafana Labs. It is designed to help developers and engineers test the performance and reliability of their systems, particularly APIs, microservices, and websites. K6 is both an HTTP load and functional test tool, written in Go and using the goja embedded JavaScript interpreter for test scripting purposes. Tests are written in ECMAScript 6 using the Babel transpiler. There is support for HTTP/2, TLS, test assertions, ramp up and down, duration, number of iterations etc. Standard metrics include reports to standard out but can include collectors that report to time-series databases which can be visualized in real-time. There is a Jenkins plugin that can be combined with thresholds (global pass/fail criteria).

Features

  • Developer-friendly: Uses JavaScript for scripting.
  • Extensible: Can be extended with various modules and integrations.
  • Performance testing: Supports stress, spike, and soak tests.
  • Automation-friendly: Integrates with CI/CD pipelines for continuous testing.

History

K6 was initially released by LoadImpact in 2017. LoadImpact was later rebranded into k6 in 2020. K6 was then acquired by Grafana Labs in 2021. It has since become a popular tool for performance testing in the developer community.

Example and usage

The below script executes a GET request on the Misplaced Pages homepage, checks whether the HTTP status code is 200 and if we are using the HTTP/2 protocol.

import http from "k6/http";
import { check } from "k6";
export default function() {
  check(http.get("https://www.wikipedia.org/"), {
    "status is 200": (r) => r.status == 200,
    "protocol is HTTP/2": (r) => r.proto == "HTTP/2.0",
  });
}

The above test case can be run with the command $ k6 run http_2.js where http_2.js is the filename in which the test case is saved in.

See also

References

  1. "Grafana k6 | Grafana k6 documentation". Grafana Labs. Retrieved 2024-10-07.
  2. "Load testing for engineering teams | Grafana k6". k6.io. Retrieved 2024-10-07.
  3. ^ "Create Misplaced Pages page for K6 ยท Issue #104 ยท grafana/k6-docs". GitHub. Retrieved 2024-10-07.
  4. grafana/xk6, Grafana Labs, 2024-10-04, retrieved 2024-10-07
  5. "An... other load testing tool?". k6.io. Retrieved 2024-10-07.
  6. "Load Impact is now k6". loadimpact.com. Retrieved 2024-10-07.
  7. "LoadImpact is rebranding to k6". k6.io. Retrieved 2024-10-07.
  8. Wiggers, Kyle (2021-06-17). "Grafana Labs acquires load-testing startup K6". VentureBeat. Retrieved 2024-10-07.
  9. "Testing Tools - Ranking | OSS Insight". ossinsight.io. Retrieved 2024-10-07.

External links


Stub icon

This programming-tool-related article is a stub. You can help Misplaced Pages by expanding it.

Categories:
K6 (software) Add topic