A hands-on laboratory for learning the fundamentals of Performance Testing using k6.
- Learn the fundamentals of Performance Testing.
- Understand the differences between Smoke, Load, and Stress Testing.
- Interpret performance metrics and statistical results.
- Work with Virtual Users, stages, checks, and thresholds.
- Document the learning process through practical examples.
- k6
- JavaScript (ES6+)
- Node.js
- Biome
- Git
- GitHub
- Node.js
- k6
git clone https://github.com/aldimhernandez/performance-testing-lab.git
cd performance-testing-lab
npm installk6 run scripts/smoke.jsk6 run scripts/load.jsk6 run scripts/stress.jsNote
The scripts target the public k6 demo application (
https://test.k6.io), which is intended for learning and experimentation.
scripts/
├── smoke.js
├── load.js
└── stress.js
docs/
├── concepts.md
├── glossary.md
├── learning-journal.md
├── statistics.md
└── next-steps.md
- ✅ Smoke Testing
- ✅ Load Testing
- ✅ Stress Testing
- ✅ Virtual Users (VUs)
- ✅ Stages
- ✅ Checks
- ✅ Thresholds
- ✅ Performance Metrics
- ✅ Percentiles
- ✅ Results Analysis
Additional notes are available in the docs/ directory.
- Concepts — Performance Testing fundamentals.
- Statistics — Interpreting performance metrics.
- Glossary — Common terminology.
- Learning Journal — Personal notes and discoveries throughout the project.
- Next Steps — Ideas for future improvements and experiments.
- Soak (Endurance) Testing
- Spike Testing
- Volume Testing
- Measure HTTP redirects separately
- Custom Metrics
- Tags and Groups
- CI/CD integration
- Docker execution
- HTML reports
- Grafana dashboards
- BDD integration
This project was built following the official Grafana k6 documentation and complemented with hands-on experiments.
- Grafana k6 Documentation: https://grafana.com/docs/k6/latest/
- Getting Started with k6: https://grafana.com/docs/k6/latest/get-started/
- k6 Examples: https://grafana.com/docs/k6/latest/examples/