Skip to content

picodata/stroppy

Repository files navigation

Stroppy

Stroppy is a benchmarking and testing tool for database systems. It provides a flexible framework for running performance tests and generating reports.

Features

  • Run database benchmarks with configurable workloads
  • Support for multiple database backends
  • Generate detailed performance reports
  • Validate benchmark configurations
  • Example benchmarks for quick start

Installation

Option 1: Using Pre-built Binaries (Recommended)

  1. Download the latest release from the GitHub Releases page
  2. Extract the archive
  3. Make the binary executable:
    chmod +x stroppy
  4. Move the binary to a directory in your PATH (optional)

Option 2: Building from Source

Prerequisites

  • Go 1.24.3 or later
  • Protocol Buffers compiler (e.g. protoc, for generating schemes)
  • Node.js and npm (for TypeScript SDK generation)
  • Make (for building the project)
  1. Clone the repository:

    git clone https://github.com/picodata/stroppy.git
    cd stroppy
  2. Install dependencies:

    make .bin_deps
    go mod tidy
  3. Build the project:

    make build

Usage

Available Commands

  • run: Execute benchmark tests
  • validate: Validate benchmark configuration
  • example: Run example benchmarks
  • generate-dev: Generate development files

Generate example configuration

To generate examples configuration with default values:

stroppy example --output=<output-dir>

Generate dev environment

To generate development files (k6.ts,stroppy.ts sdk, etc):

stroppy generate-dev --run-config<config-file>

Note: This command generate example with Postgres driver and K6 constant-arrival-rate workload

Running Benchmarks

To run a benchmark, use the following command:

stroppy run --run-config<config-file>

Validating Configuration

Before running benchmarks, you can validate your configuration:

stroppy validate --run-config<config-file>

Customization

If you want to customize you running environment please read the customization

Development

Read Makefile help

make help

Note: Other useful commands to work with protobuf cant be found in the Makefile

Building single Binary

make build

Note: This command build k6 and postgres driver binaries and put it together in embed stroppy and build stroppy binary if you wish to use custom k6 or postgres driver please read the docs about customizing

Running Tests

make test

Linting

make lint

Architecture diagram

Architecture

License

This project is licensed under the terms of the LICENSE file.

Authors

See the AUTHORS file for a list of contributors.

Contributing

Contributions are welcome! Please read our contributing guidelines before submitting pull requests.

About

stroppy - stress test tool for different databases

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 11