K6
k6 load testing tool. Use for performance testing.From its SKILL.md
npx -y skills add G1Joshi/Agent-Skills --skill k6Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 12 stars12 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
2.0 KB, 503 tokens by cl100k_base, as published. Nobody here has run it
k6
k6 is a developer-centric, open-source load testing tool suitable for testing APIs, microservices, and websites. It is written in Go but you script tests in JavaScript.
When to Use
- API Load Testing: The gold standard for modern API performance testing.
- CI/CD Integration: Very lightweight binary (or Docker), easy to gate capabilities ("fail if p95 > 500ms").
- Developer Friendly: Uses JS (ES6) for scripting, so backend/frontend devs can write tests.
Quick Start
import http from "k6/http";
import { sleep, check } from "k6";
export const options = {
vus: 10,
duration: "30s",
};
export default function () {
const res = http.get("http://test.k6.io");
check(res, {
"status was 200": (r) => r.status == 200,
});
sleep(1);
}
Run with k6 run script.js.
Core Concepts
Virtual Users (VUs)
Simulated users that run your script in a loop. They are concurrent but not browser-based (unless you use xk6-browser), so they are CPU efficient.
Checks & Thresholds
- Check: Boolean assertion (like an assert). Doesn't fail the test, just reports pass/fail % at end.
- Threshold: Pass/Fail criteria for the CI pipeline.
export const options = {
thresholds: {
http_req_duration: ["p(95)<500"], // 95% of requests must complete below 500ms
},
};
Best Practices (2025)
Do:
- Modularize: Split logic into folders. k6 supports ES modules (
import { ... } from './utils.js'). - Use Scenarios: Mix different patterns (ramping up, constant arrival rate) in one test.
- Correlate specific data: Ensure you are not just hitting cache. Use dynamic data (random IDs).
Don't:
- Don't treat it like a browser: Standard k6
httpdoes not parse HTML or execute JS on the page. It just hits endpoints. Usek6-browsermodule if you strictly need browser rendering (but it's heavier).
References
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.