I am working on a project that involves stress testing different publicly available MQTT brokers. My requirement is to have 1 million concurrent clients (publishers) publishing data periodically 24/7. The use case involves smart meters telemetry.
I am currently using JMeter with mqtt-jmeter plugin on my local machine, but it will not be able to handle the 1 million users use case. I am looking for suggestions on cloud-based testing tools that could help me effectively stress test these MQTT brokers.
I am new to testing. I had only tested locally (with only 2000 publishers) to get familiar with JMeter and the mqtt plugin, and realised that I won't be able to test for my current use case locally due to limited resources.
It's possible to run JMeter in distributed mode when you install it on multiple machines all instances act as a single one, see computer cluster article for more information
JMeter master sends the .jmx test script to the slaves, they execute the test at the same time and report back test results to the master.
If you don't have and/or cannot allocate sufficient amount of on-premise machines you can use virtual machines, for example JMeter ec2 Script simplifies the process of JMeter installation and configuration on AWS EC2
If you're looking for PaaS solutions allowing you to run your JMeter tests at scale check out i.e. BlazeMeter, given you upload the plugin along with your test script it will pick it up and execute.