Skip to main content

Tool for generating MQTT messages on various topics

Project description

For testing application and tools which are handling MQTT messages it’s often needed to send continuously messages on random topics to a broker. mqtt-randompub contains options to send a single message, a specific count of messages, or a constant flow of messages till the tool is terminated. Configuration files can be used to store lists of topics to create repeatable test scenarios.


Get the files

Clone the mqtt-randompub repository:

git clone

or use pip to make an installation.:

pip3 install mqtt-randompub --user


mqtt-randompub depends only on paho-mqtt . This module should be pulled in automatically when installed with pip.

On a Fedora system:

sudo dnf -y install python-paho-mqtt


To run mqtt-randompub just type:

$ mqtt-randompub -h
usage: mqtt-randompub [-h] [-c CONFIG] [-b BROKER] [-p PORT] [-q QOS]
                      [-t TOPIC] [-s SUBTOPIC1] [-d SUBTOPIC2] [-l LOAD]
                      [-i INTERVAL] [-n NUMBER]

optional arguments:
  -h, --help            show this help message and exit
  -c CONFIG, --config CONFIG
                        configuration file to use
  -b BROKER, --broker BROKER
                        set the broker
  -p PORT, --port PORT  set the proker port
  -q QOS, --qos QOS     set the QoS of the messages
  -t TOPIC, --topic TOPIC
                        set the main topic
  -s SUBTOPIC1, --subtopic1 SUBTOPIC1
                        set the first subtopic
  -d SUBTOPIC2, --subtopic2 SUBTOPIC2
                        set the second subtopic
  -l LOAD, --load LOAD  what to use as message payload
  -i INTERVAL, --interval INTERVAL
                        time in seconds between the messages
  -n NUMBER, --number NUMBER
                        number of messages to send. set to 0 for running

in a terminal to see all options. Running without any option will send a sample message to test/# to a broker which listens on localhost on port 1883.

For local testing run a MQTT broker/server on localhost.

  • mosca - A multi-transport MQTT broker for node.js (no longer maintained)

  • mosquitto - An Open Source MQTT v3.1 Broker

and subscribe to the topic test/# with a MQTT client. For example:

mosquitto_sub -h localhost -d -t test/#

You can run mqtt-randompub with a configuration file to re-use a previous set of topics. Check the mqtt-randompub.example file for details.


mqtt-randompub licensed under MIT, for more details check LICENSE.

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

mqtt-randompub-0.2.2.tar.gz (6.1 kB view hashes)

Uploaded source

Built Distribution

mqtt_randompub-0.2.2-py3-none-any.whl (6.7 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page