k6boost
CLI tool for API performance testing that simplifies Grafana k6 workflows.
k6boost is a Node.js CLI tool that wraps Grafana k6 and provides a developer-friendly interface for API performance testing. Configure endpoints through an interactive menu or CLI commands, run tests using predefined profiles (Smoke, Load, Stress, Spike, Soak, Breakpoint), and automatically save reports for comparison. Designed to make performance testing accessible without needing to write k6 scripts.
Das Problem
Performance testing is critical for backend reliability, but writing and maintaining k6 scripts requires scripting knowledge and adds overhead. Teams need a simpler way to configure endpoints and run tests without becoming k6 experts. k6boost abstracts the scripting layer behind a simple interface, making performance testing accessible to developers and QA engineers.
Meine Rolle
Designed and built k6boost from the ground up. Implemented the interactive CLI menu, endpoint management system, all test profiles with configurable parameters, report generation and comparison logic, and security features for handling environment variables. Published to npm.
Architektur
- 1Node.js CLI entry point with interactive menu system
- 2Endpoint configuration storage in k6boost.json
- 3Command-line interface for scripting and CI/CD integration
- 4Grafana k6 integration layer (subprocess execution)
- 5Report generation and structured JSON output
- 6Configuration management with environment variable substitution
Technische Entscheidungen
- Built an interactive menu as the primary interface because developers new to performance testing should not face a blank CLI.
- Stored configuration in k6boost.json (git-tracked) while keeping reports in .k6boost/ (gitignored) to support baseline comparisons.
- Wrapped k6 rather than reimplementing the engine because k6 is proven; the value is in making it accessible.
- Supported both interactive and command-line modes so k6boost works for ad-hoc testing and CI/CD pipelines.
- Required --allow-remote flag for non-localhost targets to prevent accidental load on production.