Skip to main content

Stroppy

Database stress testing CLI powered by k6. Write tests in TypeScript, generate data with flexible generators, get detailed HTML reports.

Get StartedGitHub
{}

TypeScript Test Scripts

Write database stress tests in TypeScript with full type safety. Use k6 scenarios, thresholds, and the built-in helpers framework.

Flexible Data Generation

Generate realistic test data with uniform, normal, and Zipfian distributions. Strings, integers, floats, UUIDs, booleans, dates — with sequence and random modes.

k6 Under the Hood

Built as a k6 extension. Get virtual users, scenarios, thresholds, real-time web dashboard, and HTML report export out of the box. All k6 features work natively.

📊

Built-in Workloads

Start immediately with TPC-B, TPC-C, and TPC-DS preset workloads. Or scaffold your own with stroppy gen --preset=simple.

🗃️

SQL-First Approach

Organize SQL in structured files with named sections and queries. Named parameters, automatic placeholder conversion, and argument validation out of the box.

🔌

Extensible Drivers

PostgreSQL driver built-in with connection pooling and COPY support. Add your own database driver by implementing a simple Go interface and registering it.

Up and running in 30 seconds

1
Generate a workspace
stroppy gen --preset=simple
2
Install dependencies
cd simple && npm install
3
Run your test
stroppy run simple.ts

Or use Docker

# Pull and run directly
docker pull ghcr.io/stroppy-io/stroppy:latest

# Run built-in TPC-C benchmark
docker run --network host \
  stroppy run /workloads/tpcc/tpcc.ts \
  /workloads/tpcc/tpcc.sql

# With custom database URL
docker run --network host \
  -e DRIVER_URL="postgres://u:p@host/db" \
  stroppy run /workloads/simple/simple.ts

Or ask Claude Code

# With the Stroppy MCP server configured,
# just ask in natural language:

> run a TPC-C benchmark with
  50 virtual users for 5 minutes
  and save an HTML report

# Claude Code calls stroppy_run()
# with the right parameters — no env
# vars, no flags, no permission prompts.

Set up the MCP server →