K6 performance test
Here is a Beginner k6 Learning Syllabus + API Performance Examples designed specifically for you (Automation QA → Selenium → Playwright → API Testing → Performance Testing) π
π Beginner k6 Learning Syllabus
Module 1 — Performance Testing Basics
Before learning k6, understand:
What is Performance Testing?
Load Testing
Stress Testing
Spike Testing
Endurance Testing
Important Terms
| Term | Meaning |
|---|---|
| VU | Virtual Users |
| TPS | Transactions per second |
| Response Time | API response duration |
| Throughput | Requests per second |
| Latency | Time before request starts |
Module 2 — Installing k6
Ways to Install:
Chocolatey (You tried already)
Winget
Download Binary
Verify:
k6 version
Module 3 — First k6 Script
Create file:
test.js
Code:
import http from 'k6/http';
export default function () {
http.get('https://test.k6.io');
}
Run:
k6 run test.js
Module 4 — Virtual Users (Load Testing)
Example:
import http from 'k6/http';
export const options = {
vus: 10,
duration: '10s',
};
export default function () {
http.get('https://test.k6.io');
}
This means:
10 users
10 seconds
Module 5 — k6 Options
Common Options:
export const options = {
vus: 20,
duration: '30s',
iterations: 100,
};
Options Explanation:
| Option | Meaning |
|---|---|
| vus | Virtual users |
| duration | Test time |
| iterations | Number of calls |
π API Performance Examples
Now real-world API examples π
Example 1 — Simple API Load Test
import http from 'k6/http';
export const options = {
vus: 5,
duration: '10s',
};
export default function () {
http.get('https://reqres.in/api/users?page=2');
}
Run:
k6 run api_test.js
Example 2 — API with Validation
import http from 'k6/http';
import { check } from 'k6';
export const options = {
vus: 5,
duration: '10s',
};
export default function () {
const res = http.get('https://reqres.in/api/users');
check(res, {
'status is 200': (r) => r.status === 200,
});
}
Example 3 — POST API Performance
import http from 'k6/http';
export const options = {
vus: 10,
duration: '10s',
};
export default function () {
const payload = JSON.stringify({
name: "Sunil",
job: "QA Engineer"
});
const params = {
headers: {
'Content-Type': 'application/json',
},
};
http.post('https://reqres.in/api/users', payload, params);
}
Example 4 — API with Multiple Requests
import http from 'k6/http';
export const options = {
vus: 10,
duration: '20s',
};
export default function () {
http.get('https://reqres.in/api/users');
http.get('https://reqres.in/api/users/2');
}
Example 5 — Ramp Up Users (Realistic Test)
export const options = {
stages: [
{ duration: '10s', target: 5 },
{ duration: '20s', target: 10 },
{ duration: '10s', target: 0 },
],
};
This means:
0 → 5 users
5 → 10 users
10 → 0 users
Realistic Load Testing π
Example 6 — Response Time Validation
import http from 'k6/http';
import { check } from 'k6';
export default function () {
const res = http.get('https://reqres.in/api/users');
check(res, {
'response time < 500ms': (r) => r.timings.duration < 500,
});
}
Example 7 — Authentication API
import http from 'k6/http';
export default function () {
const payload = JSON.stringify({
email: "eve.holt@reqres.in",
password: "cityslicka"
});
const params = {
headers: {
'Content-Type': 'application/json',
},
};
http.post('https://reqres.in/api/login', payload, params);
}
Real-World Example (Your QA Project)
Example: Login → Get Dashboard → Logout
import http from 'k6/http';
export default function () {
http.post('https://api.site.com/login');
http.get('https://api.site.com/dashboard');
http.post('https://api.site.com/logout');
}
Reporting (Important)
k6 shows report automatically:
Example Output:
checks................: 100%
http_req_duration.....: avg=250ms
http_reqs.............: 500
vus...................: 10
Tools Similar to k6
| Tool | Usage |
|---|---|
| Apache JMeter | Traditional performance tool |
| Grafana | Dashboard |
| Prometheus | Metrics |
| Locust | Python performance |
Learning Path (Recommended for You)
Day 1
Install k6
Run simple test
Day 2
VUs
Duration
Iterations
Day 3
API Testing
POST Request
Day 4
Validation
Response time
Day 5
Real project test
Why k6 is Good for You
You already know:
Selenium
Playwright
Rest Assured
Java
k6 adds:
✅ Performance Testing
✅ API Load Testing
✅ DevOps Friendly
✅ Cloud Execution
Very high demand skill π₯
Next I can give:
Real interview questions
Advanced k6 framework
CI/CD Integration
Just tell me π
Comments
Post a Comment