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-B benchmark
docker run --network host \
  stroppy run /workloads/tpcb/tpcb.ts \
  /workloads/tpcb/tpcb.sql

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