Examining Modern Load Testing with k6 – A Practical Journey for A QA


Introduction
While many testers today test AI tools, I focus on understanding how applications behave under real load conditions.
As a QA engineer, I mainly focus on functional testing. But one important question always remained in my mind:
- What happens when multiple users access the system at the same time?
- Will the request still respond quickly?
- Or will it fail under pressure?
To answer these, I started working with them k6a modern and lightweight load testing tool.


Why Loading Is So Important
Valid test answers:
Does the feature work?
But the performance test answers:
Will it still work under load?
In real-world systems, performance directly affects the user experience.
That’s why load testing isn’t optional—it’s essential.
Starting with k6
I started with a simple script:
import { check, sleep } from 'k6';
export const options = {
vus: 50, // 50 virtual users
duration: '15s', // run for 15 seconds
};
export default function () {
// Mock Add Employee request
const res = { status: 201 }; // simulate success
check(res, { 'employee added (mock)': (r) => r.status === 201 });
sleep(1);
}
With just a few lines, I was able to simulate multiple users hitting the app at the same time.
Conducting the Test
k6 run tests.js
k6 runs directly from the command line and immediately starts generating loads.


Understanding the Effects
k6 provides key performance metrics:
- Response time (P95, P99) → Real user experience
- Error rate → Failure during execution
- Requests per second (RPS) → Transfer
- Virtual Users (VUs) → Load the simulation
These metrics help evaluate how stable and responsive the app is.


Real Challenges I Faced
Demo app limitations
While testing the demo apps:
- Some actions have been blocked
- APIs behave inconsistently
Learning: Demo sites are not always reliable.
UI vs API Testing
UI-based load testing was:
Switching to API testing is provided:
- Quick action
- Very accurate results
Learning: API level testing is more reliable.
Understanding Metrics (The First Struggle)
At first, metrics like P95 and P99 were confusing.
Later I understood:
The P95 latency reflects the actual user experience better than average
Learning: Understanding metrics is as important as doing the testing.
k6 vs Apache JMeter – Practical Comparison
| A feature | k6 | Apache JMeter |
| Set up | Lightweight, quick installation | Heavy setup |
| Interface | It is CLI based | It is GUI based |
| Writing a script | JavaScript | GUI + scripting |
| Working | Fast, low resource usage | It can be resource-intensive |
| CI/CD | Easy integration | It’s in between |
My take:
- k6 is ideal for modern & automated API testing
- JMeter is useful for GUI-based and legacy testing
AI + Load Testing
I also tested AI-based testing tools that:
- Generate test cases
- Simulate user flow
However:
AI tools help, but solid foundations provide better control and precision.
Key Takeaways
- Start small and scale up gradually
- He prefers API testing to UI testing
- Understand metrics before measuring
- Focus on real-world situations
- Basics > Tools
Rethinking Testing with k6
This experience changed the way I look at testing.
Testing is not only:
Does it work?
But also:
Will it still work under pressure?
Working with k6 helped me understand performance testing from a practical perspective and gave me the confidence to analyze real-world system behavior.


