Modern Load Testing Reimagined for High-Performance APIs
Yamcha is a next-generation load testing tool that empowers you to simulate real-world traffic, monitor live results, and optimize your backend with confidence. Experience blazing-fast, flexible, and insightful testing—no code required.
Explore our cutting-edge features
Real-time test management with pixel-perfect charts and multi-session support
Steady, Burst, Spike, Sustained, Gradual patterns for comprehensive testing
Comprehensive statistics including percentiles, throughput, and error analysis
Live metrics updates and WebSocket-based dashboard updates
Support for YAML/JSON config files alongside CLI flags
HTML, JSON, CSV reports with beautiful visualizations
Comprehensive support for various attack patterns including Steady, Burst, Spike, Sustained, and Gradual, allowing for flexible and thorough testing scenarios.
Full HTTP method support (GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS) with custom headers, JSON body, and authentication.
Optimized for high performance with features like connection pooling, configurable worker pools, rate limiting, and proper resource management.
Real-time monitoring with live statistics, response time percentiles, throughput, success/failure rates, and interactive HTML reports.
git clone https://github.com/Aditya1404Sal/Yamcha.git
cd Yamcha
make build./yamcha -url https://api.example.com \
-req 100 -rate 20
./yamcha -attack burst -req 25 \
-burst 5 -rate 15Flexible configuration options with YAML/JSON support for complex test scenarios
target:url:"https://api.example.com"method:"POST"headers:Content-Type:"application/json"load:attack_type:"steady"requests:1000rate:50
-url, -method, -body
-attack, -req, -rate, -dur
-timeout, -keep-alive, -max-idle
-output-dir, -plot, -progress
Comprehensive analytics and beautiful reporting for deep insights
Optimize your load testing for maximum effectiveness
Start with 50-100 workers and adjust based on your system performance
Enable keep-alive connections for better performance and resource utilization
Use appropriate rates to avoid overwhelming the target system
Use live monitoring for long-running tests to catch issues early
Monitor CPU and memory usage during tests to prevent system overload
Use YAML/JSON configs for complex scenarios and repeatability