A set of Python tools for scalability and load testing of MQTT environments by simulating high-volume publishers and subscribers.
MQTT-Malaria is a Python-based toolset for load testing and scalability analysis of MQTT message brokers and systems. It simulates high volumes of MQTT publishers and subscribers to measure performance, message delivery reliability, and timing characteristics under various load conditions. The project helps identify bottlenecks and validate the capacity of MQTT infrastructures.
IoT developers, MQTT system administrators, and performance engineers who need to validate the scalability and reliability of their MQTT-based messaging systems before deployment.
Unlike generic load testing tools, MQTT-Malaria is specifically designed for MQTT protocols with features like QoS simulation, timing-instrumented messages, and multi-process client emulation. It provides detailed statistical output that helps pinpoint performance issues in MQTT broker implementations.
Attacking MQTT systems with Mosquittos (scalability and load testing utilities for MQTT environments)
Uses multi-process publishing with the -P flag to mimic hundreds or thousands of separate MQTT clients concurrently, as demonstrated in examples simulating 500 processes.
Supports fixed-size, Gaussian-distributed message sizes, and timing-instrumented payloads for flight time tracking, allowing varied and realistic test scenarios.
Allows setting target messages per second with the -T flag, enabling simulation of real-world device behavior and controlled load generation.
Provides per-client and aggregate metrics including success rates, mean/stddev timing, and messages per second, as evidenced in the verbose example outputs with timing data.
Requires Python 2 and paho-mqtt library from 2015, which are no longer supported and may have compatibility issues with modern systems and broker implementations.
Subscriber side requires timing-instrumented payloads and operates in single-threaded mode, limiting flexibility for multi-threaded or varied subscriber testing scenarios.
The project has not been actively developed since 2015, with minimal bugfix support and no new features, as explicitly stated in the README status section.
For high process counts, manual adjustment of ulimit settings is required, adding complexity to setup and execution for large-scale tests.
A Powerful and All-in-One MQTT 5.0 client toolbox for Desktop, CLI and WebSocket.
Subscribe to a MQTT Topic or publish something quickly from the terminal
A websockets based MQTT Client for your browser.
MQTT CLI is a useful command line interface for connecting various MQTT clients supporting MQTT 5.0 and 3.1.1
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.