YAMCHA

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.

What we offer

Explore our cutting-edge features

Live Web Dashboard

Real-time test management with pixel-perfect charts and multi-session support

Multiple Attack Patterns

Steady, Burst, Spike, Sustained, Gradual patterns for comprehensive testing

Advanced Metrics

Comprehensive statistics including percentiles, throughput, and error analysis

Real-time Monitoring

Live metrics updates and WebSocket-based dashboard updates

Enhanced Configuration

Support for YAML/JSON config files alongside CLI flags

Multiple Output Formats

HTML, JSON, CSV reports with beautiful visualizations

Core Testing Capabilities

Attack Patterns

Comprehensive support for various attack patterns including Steady, Burst, Spike, Sustained, and Gradual, allowing for flexible and thorough testing scenarios.

HTTP Support

Full HTTP method support (GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS) with custom headers, JSON body, and authentication.

Performance & Reliability

Optimized for high performance with features like connection pooling, configurable worker pools, rate limiting, and proper resource management.

Monitoring & Reporting

Real-time monitoring with live statistics, response time percentiles, throughput, success/failure rates, and interactive HTML reports.

Quick Start

Installation

git clone https://github.com/Aditya1404Sal/Yamcha.git
cd Yamcha
make build

Basic Usage

./yamcha -url https://api.example.com \
  -req 100 -rate 20

./yamcha -attack burst -req 25 \
  -burst 5 -rate 15

Configuration

Flexible configuration options with YAML/JSON support for complex test scenarios

YAML Configuration

target:
url: "https://api.example.com"
method: "POST"
headers:
Content-Type: "application/json"

load:
attack_type: "steady"
requests: 1000
rate: 50

Command Line Options

Target

-url, -method, -body

Load

-attack, -req, -rate, -dur

HTTP

-timeout, -keep-alive, -max-idle

Output

-output-dir, -plot, -progress

Performance Metrics

Comprehensive analytics and beautiful reporting for deep insights

Response Times

Average52.3ms
P9589.4ms
P99156.8ms

Throughput

Requests/sec19.01
Data/sec45.23 KB
Success Rate99.00%

Status Codes

200 OK195 (97.5%)
201 Created3 (1.5%)
429 Rate Limit2 (1.0%)

Performance Tips

Optimize your load testing for maximum effectiveness

Tune Worker Count

Start with 50-100 workers and adjust based on your system performance

Connection Pooling

Enable keep-alive connections for better performance and resource utilization

Rate Limiting

Use appropriate rates to avoid overwhelming the target system

Real-time Monitoring

Use live monitoring for long-running tests to catch issues early

Resource Limits

Monitor CPU and memory usage during tests to prevent system overload

Configuration

Use YAML/JSON configs for complex scenarios and repeatability