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!