Skip to main content

Distributed HTTP load testing framework with journey-based scenarios

Project description

██╗██████╗  ██████╗ ███╗   ██╗    ███████╗██╗    ██╗ █████╗ ██████╗ ███╗   ███╗
██║██╔══██╗██╔═══██╗████╗  ██║    ██╔════╝██║    ██║██╔══██╗██╔══██╗████╗ ████║
██║██████╔╝██║   ██║██╔██╗ ██║    ███████╗██║ █╗ ██║███████║██████╔╝██╔████╔██║
██║██╔══██╗██║   ██║██║╚██╗██║    ╚════██║██║███╗██║██╔══██║██╔══██╗██║╚██╔╝██║
██║██║  ██║╚██████╔╝██║ ╚████║    ███████║╚███╔███╔╝██║  ██║██║  ██║██║ ╚═╝ ██║
╚═╝╚═╝  ╚═╝ ╚═════╝ ╚═╝  ╚═══╝    ╚══════╝ ╚══╝╚══╝ ╚═╝  ╚═╝╚═╝  ╚═╝╚═╝     ╚═╝

Tests Docker Build PyPI version Python 3.10+


Table of Contents

Installation

pip install ironswarm

Usage

usage: ironswarm [-h] [-b BOOTSTRAP] [-H HOST] [-p PORT] [-j JOB] [-v | --verbose | --no-verbose] [--log-file LOG_FILE]

options:
  -h, --help            show this help message and exit
  -b, --bootstrap BOOTSTRAP
                        bootstrap node(s) to initially connect to
  -H, --host HOST       network interface to bind to local/public or IP address (default: public)
  -p, --port PORT       port to bind to (default: 42042)
  -j, --job JOB         job to run (default: None)
  -v, --verbose, --no-verbose
                        enable verbose logging
  --log-file LOG_FILE   Optional path to write logs to a file.

Run a single node with no bootstrap

ironswarm -H local

Run multiple nodes in a tmux session

./example/multi.sh

Run a single node bootstrapping to another node

ironswarm -H local -b tcp://127.0.0.1:42042

Docker

Pull the latest image:

docker pull ghcr.io/ryan-h265/ironswarm:latest

Run the latest image:

docker run -it ghcr.io/ryan-h265/ironswarm:latest ironswarm -H local

Running with Custom Scenario Files

To run the container with your own scenario files, copy them into the running container:

  1. Start the container with a name:
docker run -d --name ironswarm-node ghcr.io/ryan-h265/ironswarm:latest tail -f /dev/null
  1. Copy your scenario file into the container:
docker cp examples/http_scenario.py ironswarm-node:/usr/src/app/http_scenario.py
  1. Execute ironswarm with your scenario:
docker exec -it ironswarm-node ironswarm -j http_scenario:scenario -H local
  1. Clean up when done:
docker stop ironswarm-node
docker rm ironswarm-node

Development

Useful hatch commands

hatch run types:check
hatch test --cover

License

This project is licensed under the MIT License. See the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ironswarm-0.0.2.tar.gz (4.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ironswarm-0.0.2-py3-none-any.whl (44.1 kB view details)

Uploaded Python 3

File details

Details for the file ironswarm-0.0.2.tar.gz.

File metadata

  • Download URL: ironswarm-0.0.2.tar.gz
  • Upload date:
  • Size: 4.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ironswarm-0.0.2.tar.gz
Algorithm Hash digest
SHA256 a3ff9c86047bd894bf5dc9283518f667695ba558689eb7011051c1bd9cb2dd3e
MD5 0aa670951713116019ac09c21568f640
BLAKE2b-256 91ab4134dbef7773f79b9b3906835561aa18ffdce0148f484fdf6ee910f2b735

See more details on using hashes here.

Provenance

The following attestation bundles were made for ironswarm-0.0.2.tar.gz:

Publisher: release.yml on ryan-h265/ironswarm

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ironswarm-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: ironswarm-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 44.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ironswarm-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 1317dcb182836871f887655c1f882b48d55c70ede765b50c165eff3b3a154ccf
MD5 eb83f69240d53c2307668cb6e4508feb
BLAKE2b-256 e5120c79e4a28e58c936254f4b41f90768e9ef9e22b9537d7432fc5c50b88499

See more details on using hashes here.

Provenance

The following attestation bundles were made for ironswarm-0.0.2-py3-none-any.whl:

Publisher: release.yml on ryan-h265/ironswarm

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page