Learning Notes #69 β Getting Started with k6: Writing Your First Load Test
Performance testing is a crucial part of ensuring the stability and scalability of web applications. k6 is a modern, open-source load testing tool that allows developers and testers to script and execute performance tests efficiently. In this blog, weβll explore the basics of k6 and write a simple test script to get started.
What is k6?
k6 is a load testing tool designed for developers. It is written in Go but uses JavaScript for scripting tests. Key features include,
- High performance with minimal resource consumption
- JavaScript-based scripting
- CLI-based execution with detailed reporting
- Integration with monitoring tools like Grafana and Prometheus
Installation
For installation check : https://grafana.com/docs/k6/latest/set-up/install-k6/
Writing a Basic k6 Test
A k6 test is written in JavaScript. Hereβs a simple script to test an API endpoint,
import http from 'k6/http'; import { check, sleep } from 'k6'; export let options = { vus: 10, // Number of virtual users duration: '10s', // Test duration }; export default function () { let res = http.get('https://api.restful-api.dev/objects'); check(res, { 'is status 200': (r) => r.status === 200, }); sleep(1); // Simulate user wait time }
Running the Test
Save the script as script.js
and execute the test using the following command,
k6 run script.js
Understanding the Output

After running the test, k6 will provide a summary including
1. HTTP requests: Total number of requests made during the test.
2. Response time metrics:
min
: The shortest response time recorded.
max
: The longest response time recorded.
avg
: The average response time of all requests.
p(90)
,p(95)
,p(99)
: Percentile values indicating response time distribution.
3. Checks: Number of checks passed or failed, such as status code validation.
4. Virtual users (VUs):
vus_max
: The maximum number of virtual users active at any time.
vus
: The current number of active virtual users.
5. Request Rate (RPS β Requests Per Second): The number of requests handled per second.
6. Failures: Number of errors or failed requests due to timeouts or HTTP status codes other than expected.
Next Steps
Once youβve successfully run your first k6 test, you can explore,
- Load testing different APIs and endpoints
- Running distributed tests
- Exporting results to Grafana
- Integrating k6 with CI/CD pipelines
k6 is a powerful tool that helps developers and QA engineers ensure their applications perform under load. Stay tuned for more in-depth tutorials on advanced k6 features!