Welcome to the k6 documentation! The aim of this documentation is to take you from total beginner to k6 expert.
k6 is a developer-centric load testing tool designed to help you, as a developer, incorporate load testing into your workflow, and ultimately get it into your automation flow. It aims to do so by:
- Being easy to get started with; open-source, well documented and with simple command line usage
- Scaling with you from simple unit load tests (eg. single API endpoint) to more complex scenario load tests (eg. an application using a full API)
- Allowing you to seamlessly go from local or on-premise use to the convenience of managed cloud use
Some of the features you will learn about in the documentation:
- Scripting in Javascript ES2015/ES6 - with support for local and remote modules
- Checks and Thresholds - for goal-oriented, automation-friendly load testing
- Configuration options as code
- Appropriate metric statistics - including 90th, 95th and 99th percentiles on response times
- Custom metrics - for flexibility in what metrics gets collected during a test
- Protocol support - with support for HTTP/1.1, HTTP/2 and WebSockets out of the box
- TLS features: client certificates, configurable versions and ciphers
- Cookies - simple key-value session cookies and more advanced persistent cookies
- Crypto library - for implementing authentication/authorization protocols
- Session recording / HAR support - for converting a recorded user session (HAR file) to a load test.
We try to make this documentation as beginner-friendly as possible but we will assume some working knowledge of the following:
- Javascript - you script your test cases with Javascript so familiarity with it is assumed.
- ES2015 modules - you will better understand k6 scripting if you are comfortable with JavaScript Modules.
- ES2015 syntax - k6 comes with Babel.js by default so you can take advantage of newer language features such as arrow functions, template strings, destructuring, and more. You can check the Babel.js documentation or read Understanding ECMAScript 6 online.
Typos, missing words, and code samples with errors are all considered documentation bugs. If you spot one of them, or want to otherwise improve the existing documentation, we are happy to help you help us!
There are three primary ways in which you can help us:
- If you spot a bug on this documentation site (docs.k6.io), please use the "Suggest edits" button in the top right corner of each page.
- If you spot a bug in one of the code samples in the k6 repository on Github, please open an issue in the issue tracker or better yet create a Pull Request to patch the bug.
- If you want to discuss any topic around documentation please join our Slack team and head to the #documentation channel.
Types of questions and where to ask:
- How do I? -- Stack Overflow (use tags: k6, javascript, load-testing)
- How do I? Get k6 community support -- Community Forum
- I got this error, why? -- Stack Overflow
- I got this error and I'm sure it's a bug -- file an issue
- I have an idea/request -- file an issue
- Why do you? -- Slack
- When will you? -- Slack
- I want to contribute/help with development -- Start here, then Slack and issues