Skip to main content

Grizzly - /ˈɡɹɪzli/

grizzly logo

Project status

Framework

PyPI - License PyPI PyPI - Python Version

Command Line Interface

PyPI - License PyPI PyPI - Python Version

Editor Support / Language Server

PyPI - License PyPI PyPI - Python Version

Editor Support / Visual Studio Code Extension

GitHub License Visual Studio Marketplace Version (including pre-releases) Visual Studio Marketplace Release Date

Grizzly is a framework to be able to easily define load scenarios, and is primarily built on-top of two other frameworks.

Locust: Define user behaviour with Python code, and swarm your system with millions of simultaneous users.

Behave: Uses tests written in a natural language style, backed up by Python code.

behave is abused for being able to define locust load test scenarios using gherkin. A feature can contain more than one scenario and all scenarios will run in parallell. This makes it possible to implement load test scenarios without knowing python or how to use locust.

Locust are a group of certain species of short-horned grasshoppers in the family Arcididae that have a swarming phase.

The name grizzly was chosen based on the grasshopper Melanoplus punctulatus, also known as grizzly spur-throat grasshopper. This species prefers living in trees over grass, which is a hint to Biometria1, where grizzly originally was created.

1 Biometria is a member owned and central actor within the swedish forestry that performs unbiased measurement of lumber flowing between forest and industry so that all of Swedens forest owners can feel confident selling their lumber.

Documentation

More detailed documentation can be found here and the easiest way to get started is to check out the example.

Features

A number of features that we thought locust was missing out-of-the-box has been implemented in grizzly.

Test data

Support for synchronous handling of test data (variables). This is extra important when running locust distributed and there is a need for each worker and user to have unique test data, that cannot be re-used.

The solution is heavily inspired by Karol Brejnas locust experiments - feeding the locust. A producer is running on the master (or local) node and keeps track of what has been sent to the consumer running on a worker (or local) node. Communication is done with asynchronous custom locust messages, over it's ZeroMQ based RPC connection between nodes.

When the consumer wants new test data, it sends a message to the server that it is available and for which scenario it is going to run. The producer then responds with unique test data that can be used.

Load users

locust comes with a range of different load users. Grizzly has it's own though, and it is not possible to use pure locust user implementations.

  • RestApiUser: send requests to REST API endpoinds, supports authentication with username+password or client secret
  • ServiceBusUser: send to and receive from Azure Service Bus queues and topics
  • MessageQueueUser: send and receive from IBM MQ queues
  • BlobStorageUser: send and receive files to Azure Blob Storage
  • IotHubUser: send/put files to Azure IoT Hub

Installation

python -m pip install grizzly-loadtester
python -m pip install grizzly-loadtester-cli

Do not forget to try the example which also serves as a boilerplate scenario project, or create a new grizzly project with:

grizzly-cli init my-grizzly-project

Development

The easiest way to start contributing to this project is to have Visual Studio Code (with "Remote - Containers" extension) and docker installed. The project comes with a devcontainer, which encapsulates everything needed for a development environment.

It is also possible to use a python virtual environment, but then you would have to manually download and install uv and IBM MQ libraries.

wget -qO- https://astral.sh/uv/install.sh | sh
sudo mkdir /opt/mqm && cd /opt/mqm && wget https://ibm.biz/IBM-MQC-Redist-LinuxX64targz -O - | tar xzf -
export LD_LIBRARY_PATH="/opt/mqm/lib64:${LD_LIBRARY_PATH}"
cd ~/
git clone https://github.com/Biometria-se/grizzly.git
cd grizzly/
uv sync --locked --all-packages --all-extras --all-groups

Metadata

Release files for grizzly-loadtester-cli 3.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for grizzly-loadtester-cli 3.4.0
File Size Uploaded
grizzly_loadtester_cli-3.4.0.tar.gz 88.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for grizzly-loadtester-cli 3.4.0
File Interpreter ABI Platform
grizzly_loadtester_cli-3.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 146.1 kB

Release files / grizzly_loadtester_cli-3.4.0.tar.gz

Download URL grizzly_loadtester_cli-3.4.0.tar.gz
Size 88.9 kB
Tags Source
SHA-256 checksum
How to use checksums
ec95f0d8c2bd005fefc7c1d31090ba399243acbaeb6a22e5890b57d3d67ae9e4
BLAKE2b-256 checksum
How to use checksums
b8f9622913ce6abbce7e25a902e95fed392078d13278f2a2790a0d158510dba7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.9.22 {"installer":{"name":"uv","version":"0.9.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / grizzly_loadtester_cli-3.4.0-py3-none-any.whl

Download URL grizzly_loadtester_cli-3.4.0-py3-none-any.whl
Size 57.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
43bb9c24a79c657dd5e9b71bbc95548288d232c5eebbd8d46663442b35dae268
BLAKE2b-256 checksum
How to use checksums
93b46dd2a01e3c8197321e3d53eb81eb8093c7b6ddb9b5e4f533959397531873
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.9.22 {"installer":{"name":"uv","version":"0.9.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

3.4.0 This release

2 release files

3.3.1

2 release files

3.3.0

2 release files

3.2.29

2 release files

3.2.27

2 release files

3.2.26

2 release files

3.2.25

2 release files

3.2.23

2 release files

3.2.22

2 release files

3.2.21

2 release files

3.2.20

2 release files

3.2.19

2 release files

3.2.18

2 release files

3.2.16

2 release files

3.2.13

2 release files

3.2.10

2 release files

3.2.9

2 release files

3.2.8

2 release files

3.2.7

2 release files

3.2.6

2 release files

3.2.5

2 release files

3.2.4

2 release files

3.2.3

2 release files

3.2.2

2 release files

3.2.1

2 release files

3.2.0

2 release files

3.1.8

2 release files

3.1.7

2 release files

3.1.6

2 release files

3.1.5

2 release files

3.1.4

2 release files

3.1.3

2 release files

3.1.2

2 release files

3.1.1

2 release files

3.1.0

2 release files

3.0.11

2 release files

3.0.10

2 release files

3.0.9

2 release files

3.0.8

2 release files

3.0.7

2 release files

3.0.6

2 release files

3.0.5

2 release files

3.0.4

2 release files

3.0.3

2 release files

3.0.2

2 release files

3.0.1

2 release files

3.0.0

2 release files

2.1.6

2 release files

2.1.5

2 release files

2.1.4

2 release files

2.1.3

2 release files

2.1.2

2 release files

2.1.1

2 release files

2.1.0

2 release files

2.0.4

2 release files

2.0.3

2 release files

2.0.2

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.9

2 release files

1.0.8

2 release files

1.0.7

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page