© Enkel/Shutterstock.com
Automatisiertes Testen von MQTT-Applikationen

HiveMQ vorgestellt


In einem Großteil der IoT-Anwendungsfälle wird die Kommunikation zwischen Geräten mit dem MQTT-Protokoll realisiert. Typische Anwendungen sind beispielsweise Steuergeräte, Gateways, mobile Geräte, Backend-Systeme und eine Vielzahl weiterer Microservices. In Einsatzgebieten mit großen IoT-Netzwerken sind die Anforderungen an die Softwarequalität der MQTT-Applikationen besonders hoch, da sich hier Fehler katastrophal auswirken können. Automatisierte Softwaretests sind ein fundamentaler Teil davon, diese hohe Qualität zu garantieren, da Fehler in der Implementierung schnell erkannt und behoben werden können. Die HiveMQ-Testcontainer-Bibliothek wurde geschaffen, um MQTT-Anwendungen in einer isolierten Umgebung testen zu können.

Prinzipiell unterscheidet das MQTT-Protokoll zwischen zwei Rollen: dem MQTT-Client und dem MQTT Broker. Der Broker ist die zentrale Komponente des Netzwerks, über den alle Clients Nachrichten austauschen. Das zugrundeliegende Publish/Subscribe-Prinzip von MQTT ist unkompliziert und einfach zu verstehen. Durch die große Beliebtheit und Community von MQTT existiert für jede gängige Programmiersprache eine Vielzahl an bewährten und gut dokumentierten MQTT-Client-Bibliotheken. Das Implementieren einer MQTT-Client-Applikation gestaltet sich dementsprechend einfach. Schwieriger ist es jedoch, sicherzustellen, dass diese MQTT-Applikationen auch wie gewünscht funktionieren.

Ein erster Ansatz dafür ist das manuelle Testen: Durch manuelles Ausprobieren, Anpassen des Quellcodes und erneutes Ausprobieren entsteht nach und nach eine funktionierende Anwendung. Diese Vorgehensweise hat erkennbare Nachteile. Bei jeder Änderung an der Codebasis müssen alle Tests wiederholt werden. Das ist nicht nur zeitaufwendig und deshalb kostspielig, sondern auch fehleranfällig. Häufig werden Testfälle bei einer manuellen Ausführung vergessen oder unvollständig behandelt. Aus diesen Gründen ist automatisiertes Testen einer MQTT-Anwendung sehr wichtig. Ist ein automatisierter Test einmal geschrieben, kann dieser ohne großen Aufwand beliebig oft wiederholt werden.

Neben Unit-Tests, die die korrekte Funktionsweise einzelner Komponenten der MQTT-Anwendung automatisiert prüfen, empfiehlt es sich, die Applikation auch in ihrer Gänze, das heißt im Zusammenspiel mit einem MQTT Broker zu testen. Um das in einem automatisierten Integrationstest umzusetzen, musste bisher eine MQTT-Broker-Testinstanz eines bereitgestellt werden. Diese Testinstanz ist in der Regel eine vollwert...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang