Skip to content

ConnectEverything/mqtt-test

Repository files navigation

MQTT Test is a CLI command used to test and benchmark the MQTT support in NATS Server

Outputs JSON results that can be reported in a go test --bench wrapper.

Usage

Subcommands and common flags
mqtt-test [pub|sub|pubsub|subret] [flags...]

Available Commands:

  • pub - Publish MQTT messages.
  • sub - Subscribe, receive all messages, unsubscribe, {repeat} times.
  • pubsub - Subscribe and receive published messages.
  • subret - Publish {topics} retained messages, subscribe {repeat} times, and receive all retained messages.

Common flags:

  -h, --help                 help for mqtt-test
      --id string            MQTT client ID (default "mqtt-test-bssJjZUs1vhTvf6KpTpTLw")
  -q, --quiet                Quiet mode, only print results
  -s, --server stringArray   MQTT endpoint as username:password@host:port (default [tcp://localhost:1883])
      --version              version for mqtt-test
  -v, --very-verbose         Very verbose, print everything we can
pub

Publishes messages using the flags and reports the results. Used with --publishers can run several concurrent publish connections.

Flags:

--messages int     Number of transactions to run, see the specific command (default 1)
--mps int          Publish mps messages per second; 0 means no delay (default 1000)
--publishers int   Number of publishers to run concurrently, at --mps each (default 1)
--qos int          MQTT QOS
--retain           Mark each published message as retained
--size int         Approximate size of each message (pub adds a timestamp)
--timestamp        Prepend a timestamp to each message
--topic string     Base topic (prefix) to publish into (/{n} will be added if --topics > 0) (default "mqtt-test/fIqfOq5Lg5wk636V4sLXoc")
--topics int       Cycle through NTopics appending "/{n}"
sub

Subscribe, receive all expected messages, unsubscribe, {repeat} times.

Flags:

--messages int      Expect to receive this many published messages
--qos int           MQTT QOS
--repeat int        Subscribe, receive retained messages, and unsubscribe N times (default 1)
--retained int      Expect to receive this many retained messages
--subscribers int   Number of subscribers to run concurrently (default 1)
--topic string      Base topic for the test, will subscribe to {topic}/+
pubsub

Publishes N messages, and waits for all of them to be received by subscribers. Measures end-end delivery time on the messages. Used with --num-subscribers can run several concurrent subscriber connections.

--messages int      Number of messages to publish and receive (default 1)
--qos int           MQTT QOS
--size int          Approximate size of each message (pub adds a timestamp)
--subscribers int   Number of subscribers to run concurrently (default 1)
--topic string      Topic to publish and subscribe to (default "mqtt-test/JPrbNU6U3IbVQLIyazkP4y")
subret

Publishes retained messages into NTopics, then subscribes to a wildcard with all topics N times. Measures time to SUBACK and to all retained messages received. Used with --subscribers can run several concurrent subscriber connections.

--qos int           MQTT QOS
--repeat int        Subscribe, receive retained messages, and unsubscribe N times (default 1)
--size int          Approximate size of each message (pub adds a timestamp)
--subscribers int   Number of subscribers to run concurrently (default 1)
--topic string      Base topic (prefix) for the test (default "mqtt-test/yNkmAFnFHETSGnQJNjwGdN")
--topics int        Number of sub-topics to publish retained messages to (default 1)