Tests mit langer Dauer - AWS IoT Core

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Tests mit langer Dauer

Tests mit langer Dauer sind eine neue Testsuite, die das Verhalten eines Geräts überwacht, wenn es über einen längeren Zeitraum betrieben wird. Im Vergleich zur Durchführung einzelner Tests, die sich auf bestimmte Verhaltensweisen eines Geräts konzentrieren, untersucht der Tests mit langer Dauer das Verhalten des Geräts in einer Vielzahl von realen Szenarien über die gesamte Lebensdauer des Geräts. Device Advisor orchestriert die Tests in der effizientesten Reihenfolge. Der Test generiert Ergebnisse und Protokolle, einschließlich eines Übersichtsprotokolls mit nützlichen Messwerten zur Leistung des Geräts während des Tests.

MQTT-Testfall mit langer Dauer

Im MQTT-Testfall mit langer Dauer wird das Verhalten des Geräts zunächst in Happy Case-Szenarien wie MQTT Connect, Subscribe, Publish und Reconnect beobachtet. Anschließend wird das Gerät in mehreren komplexen Ausfallszenarien wie MQTT Reconnect Backoff, Long Server Disconnect und Intermittent Connectivity beobachtet.

Ablauf der Ausführung von MQTT-Testfällen mit langer Dauer

Die Ausführung eines MQTT-Testfalls mit langer Dauer besteht aus drei Phasen:

Die „MQTT-Testausführung mit langer Dauer“, die die Standardtestausführung, die Ausführung erweiterter Tests und die zusätzliche Ausführungszeit anzeigt.

Grundlegende Testausführung

In dieser Phase führt der Testfall einfache Tests parallel durch. Der Test überprüft, ob für das Gerät die in der Konfiguration ausgewählten Operationen ausgewählt wurden.

Die grundlegenden Tests können je nach den ausgewählten Vorgängen Folgendes umfassen:

CONNECT

In diesem Szenario wird überprüft, ob das Gerät eine erfolgreiche Verbindung mit dem Broker herstellen kann.

Der grundlegende Verbindungsablauf, bei dem ein Gerät eine CONNECT-Nachricht sendet und der Broker mit einer CONNACK-Nachricht mit einem erfolgreichen Rückgabecode antwortet.

PUBLISH

In diesem Szenario wird überprüft, ob das Gerät erfolgreich beim Broker veröffentlicht.

QoS 0

Dieser Testfall überprüft, ob das Gerät während einer Veröffentlichung mit QoS 0 erfolgreich eine PUBLISH-Nachricht an den Broker sendet. Der Test wartet nicht darauf, dass die PUBACK-Nachricht vom Gerät empfangen wird.

Der PUBLISH QoS 0-Flow, der beinhaltet, dass ein Gerät eine PUBLISH-Nachricht mit QoS 0-Stufe sendet.
QoS 0

In diesem Testfall wird erwartet, dass das Gerät zwei PUBLISH-Nachrichten mit QoS 1 an den Broker sendet. Nach der ersten PUBLISH-Nachricht wartet der Broker bis zu 15 Sekunden, bevor er antwortet. Das Gerät muss innerhalb des 15-Sekunden-Fensters die ursprüngliche PUBLISH-Nachricht mit derselben Paket-ID erneut versuchen. Ist dies der Fall, antwortet der Broker mit einer PUBACK-Nachricht und der Test wird validiert. Wenn das Gerät den PUBLISH-Versuch nicht wiederholt, wird das Original-PUBACK an das Gerät gesendet und der Test wird als Pass with warnings (Mit Warnungen bestanden) markiert, zusammen mit einer Systemnachricht. Wenn das Gerät während der Testausführung die Verbindung verliert und die Verbindung wiederherstellt, wird der Testszenario ohne Fehler zurückgesetzt und das Gerät muss die Schritte des Testszenarios erneut ausführen.

Der PUBLISH QoS 1-Flow, der ein Gerät umfasst, das eine PUBLISH-Nachricht mit QoS 1-Stufe sendet, und mehrere Interaktionen mit dem Broker.

SUBSCRIBE

In diesem Szenario wird überprüft, ob das Gerät erfolgreich beim Broker abonniert.

QoS 0

Dieser Testfall überprüft, ob das Gerät während eines Abonnements mit QoS 0 erfolgreich eine SUBSCRIBE-Nachricht an den Broker sendet. Der Test wartet nicht, bis das Gerät eine SUBACK-Nachricht erhält.

Der SUBSCRIBE QoS 0-Flow, der ein Gerät umfasst, das eine SUBSCRIBE-Nachricht mit der Stufe QoS 0 sendet, und einen Broker, der mit einer SUBACK-Nachricht und dem Code Success Maximum QoS 0 antwortet.
QoS 0

In diesem Testfall wird erwartet, dass das Gerät zwei SUBSCRIBE-Nachrichten mit QoS 1 an den Broker sendet. Nach der ersten SUBSCRIBE-Nachricht wartet der Broker bis zu 15 Sekunden, bevor er antwortet. Das Gerät muss innerhalb des 15-Sekunden-Fensters die ursprüngliche SUBSCRIBE-Nachricht mit derselben Paket-ID erneut versuchen. Ist dies der Fall, antwortet der Broker mit einer SUBACK-Nachricht und der Test wird validiert. Wenn das Gerät den SUBSCRIBE-Versuch nicht wiederholt, wird das Original-SUBACK an das Gerät gesendet und der Test wird als Pass with warnings (Mit Warnungen bestanden) markiert, zusammen mit einer Systemnachricht. Wenn das Gerät während der Testausführung die Verbindung verliert und die Verbindung wiederherstellt, wird der Testszenario ohne Fehler zurückgesetzt und das Gerät muss die Schritte des Testszenarios erneut ausführen.

Der SUBSCRIBE QoS 1-Flow, der ein Gerät umfasst, das eine SUBSCRIBE-Nachricht mit QoS 1-Stufe sendet, und mehrere Interaktionen mit dem Broker.

RECONNECT

In diesem Szenario wird überprüft, ob das Gerät erfolgreich wieder eine Verbindung zum Broker herstellt, nachdem das Gerät von einer erfolgreichen Verbindung getrennt wurde. Device Advisor trennt das Gerät nicht, wenn es zuvor während der Testsuite mehr als einmal eine Verbindung hergestellt hat. Stattdessen wird der Test als Pass (Bestanden) markiert.

Der RECONNECT-Fluss zwischen DUT und dem Broker.

Erweiterte Testausführung

In dieser Phase führt der Testfall komplexere Tests seriell durch, um zu überprüfen, ob das Gerät den bewährten Methoden entspricht. Diese erweiterten Tests stehen zur Auswahl und können deaktiviert werden, falls sie nicht erforderlich sind. Jeder erweiterte Test hat seinen eigenen Timeout-Wert, der auf den Anforderungen des Szenarios basiert.

RETURN PUBACK ON QoS 1 SUBSCRIPTION

Anmerkung

Wählen Sie dieses Szenario nur aus, wenn Ihr Gerät QoS 1-Abonnements ausführen kann.

In diesem Szenario wird überprüft, ob das Gerät, nachdem es ein Thema abonniert und eine PUBLISH-Nachricht vom Broker erhalten hat, eine PUBACK-Nachricht zurückgibt.

Der RETURN PUBACK ON QoS 1-ABONNEMENT-Fluss zwischen DUT und dem Broker.

RECEIVE LARGE PAYLOAD

Anmerkung

Wählen Sie dieses Szenario nur aus, wenn Ihr Gerät QoS 1-Abonnements ausführen kann.

In diesem Szenario wird überprüft, ob das Gerät mit einer PUBACK-Nachricht antwortet, nachdem es eine PUBLISH-Nachricht vom Broker für ein QoS 1-Thema mit einer großen Nutzlast erhalten hat. Das Format der erwarteten Nutzlast kann mit der LONG_PAYLOAD_FORMAT-Option konfiguriert werden.

Der RECEIVE LARGE PAYLOAD-Fluss zwischen DUT und dem Broker.

PERSISTENT SESSION

Anmerkung

Wählen Sie dieses Szenario nur aus, wenn Ihr Gerät QoS 1-Abonnements ausführen und eine persistente Sitzung aufrechterhalten kann.

In diesem Szenario wird das Geräteverhalten bei der Aufrechterhaltung persistenter Sitzungen validiert. Der Test validiert, wenn die folgenden Bedingungen erfüllt sind:

  • Das Gerät stellt mit einem aktiven QoS 1-Abonnement und aktivierten persistenten Sitzungen eine Verbindung zum Broker her.

  • Das Gerät trennt während der Sitzung erfolgreich die Verbindung zum Broker.

  • Das Gerät stellt erneut eine Verbindung zum Broker her und nimmt die Abonnements für seine Trigger-Themen wieder auf, ohne diese Themen explizit erneut zu abonnieren.

  • Das Gerät empfängt erfolgreich Nachrichten, die vom Broker für die abonnierten Themen gespeichert wurden, und läuft wie erwartet.

Weitere Informationen zu AWS IoT persistenten Sitzungen finden Sie unter Verwenden persistenter MQTT-Sitzungen.

Der PERSISTENT SESSION-Fluss zwischen DUT und dem Broker.

KEEP ALIVE

In diesem Szenario wird überprüft, ob das Gerät erfolgreich die Verbindung trennt, nachdem es keine Ping-Antwort vom Broker erhalten hat. Für die Verbindung muss ein gültiger Keep-Alive-Timer konfiguriert sein. Im Rahmen dieses Tests blockiert der Broker alle Antworten, die für PUBLISH-, SUBSCRIBE- und PINGREQ-Nachrichten gesendet wurden. Es überprüft auch, ob das getestete Gerät die MQTT-Verbindung unterbricht.

Der KEEP-ALIVE-Fluss zwischen DUT und dem Broker.

INTERMITTENT CONNECTIVITY

In diesem Szenario wird überprüft, ob das Gerät wieder eine Verbindung zum Broker herstellen kann, nachdem der Broker die Verbindung zum Gerät in zufälligen Intervallen für einen zufälligen Zeitraum getrennt hat.

Der INTERMITTIERENDE KONNEKTIVITÄTSFLUSS zwischen DUT und dem Broker.

RECONNECT BACKOFF

In diesem Szenario wird überprüft, ob auf dem Gerät ein Backoff-Mechanismus implementiert ist, wenn der Broker die Verbindung mehrmals trennt. Device Advisor meldet den Backoff-Typ als exponentiell, Jitter, linear oder konstant. Die Anzahl der Backoff-Versuche ist mit der BACKOFF_CONNECTION_ATTEMPTS-Option konfigurierbar. Der Standardwert ist 5. Der Wert ist zwischen 5 und 10 konfigurierbar.

Damit dieser Test bestanden wird, empfehlen wir, den Mechanismus Exponential Backoff And Jitter (Exponentielles Backoff und Jitter) auf dem getesteten Gerät zu implementieren.

Der RECONNECT BACKOFF-Fluss zwischen DUT und dem Broker.

LONG SERVER DISCONNECT

In diesem Szenario wird überprüft, ob das Gerät erfolgreich wieder eine Verbindung herstellen kann, nachdem der Broker die Verbindung zum Gerät über einen längeren Zeitraum (bis zu 120 Minuten) unterbrochen hat. Die Zeit für die Servertrennung kann mit der LONG_SERVER_DISCONNECT_TIME-Option konfiguriert werden. Der Standardwert beträgt 120 Minuten. Dieser Wert ist zwischen 30 und 120 Minuten konfigurierbar.

Der LONG SERVER DISCONNECT-Fluss zwischen DUT und dem Broker.

Zusätzliche Ausführungszeit

Die zusätzliche Ausführungszeit ist die Zeit, die der Test nach Abschluss aller oben genannten Tests und vor dem Beenden des Testfalls wartet. Kunden nutzen diesen zusätzlichen Zeitraum, um die gesamte Kommunikation zwischen dem Gerät und dem Broker zu überwachen und zu protokollieren. Die zusätzliche Ausführungszeit kann mit der ADDITIONAL_EXECUTION_TIME-Option konfiguriert werden. Standardmäßig ist diese Option auf 0 Minuten eingestellt und kann 0 bis 120 Minuten betragen.

Konfigurationsoptionen für MQTT-Tests mit langer Dauer

Alle für den MQTT-Test mit langer Dauer bereitgestellten Konfigurationsoptionen sind optional. Verfügbar sind die nachfolgend aufgeführten Optionen:

OPERATIONEN

Die Liste der Operationen, die das Gerät ausführt, wie CONNECT, PUBLISH Uand SUBSCRIBE. Im Testfall werden Szenarien ausgeführt, die auf den angegebenen Operationen basieren. Operationen, die nicht angegeben sind, werden als gültig vorausgesetzt.

{ "OPERATIONS": ["PUBLISH", "SUBSCRIBE"] //by default the test assumes device can CONNECT }
SZENARIEN

Basierend auf den ausgewählten Operationen führt der Testfall Szenarien aus, um das Verhalten des Geräts zu überprüfen. Es gibt zwei Arten von Szenarien:

  • Bei Basisszenarien handelt es sich um einfache Tests, mit denen überprüft wird, ob das Gerät die oben als Teil der Konfiguration ausgewählten Vorgänge ausführen kann. Diese werden auf der Grundlage der in der Konfiguration angegebenen Operationen vorab ausgewählt. In der Konfiguration sind keine weiteren Eingaben erforderlich.

  • Fortgeschrittene Szenarien sind komplexere Szenarien, die für das Gerät ausgeführt werden, um zu überprüfen, ob das Gerät unter realen Bedingungen bewährte Verfahren befolgt. Diese sind optional und können als eine Reihe von Szenarien an die Konfigurationseingabe der Testsuite übergeben werden.

{ "SCENARIOS": [ // list of advanced scenarios "PUBACK_QOS_1", "RECEIVE_LARGE_PAYLOAD", "PERSISTENT_SESSION", "KEEP_ALIVE", "INTERMITTENT_CONNECTIVITY", "RECONNECT_BACK_OFF", "LONG_SERVER_DISCONNECT" ] }
BASIC_TESTS_EXECUTION_TIME_OUT:

Die maximale Zeit, in der der Testfall auf den Abschluss aller Basistests wartet. Der Standardwert beträgt 60 Minuten. Dieser Wert ist zwischen 30 und 120 Minuten konfigurierbar.

LONG_SERVER_DISCONNECT_TIME:

Die Zeit, die der Testfall benötigt hat, um das Gerät während des Long-Server-Disconnect-Tests zu trennen und wieder zu verbinden. Der Standardwert beträgt 60 Minuten. Dieser Wert ist zwischen 30 und 120 Minuten konfigurierbar.

ADDITIONAL_EXECUTION_TIME:

Durch die Konfiguration dieser Option wird nach Abschluss aller Tests ein Zeitfenster zur Überwachung der Ereignisse zwischen dem Gerät und dem Broker bereitgestellt. Der Standardwert beträgt 0 Minuten. Dieser Wert ist zwischen 0 und 120 Minuten konfigurierbar.

BACKOFF_CONNECTION_ATTEMPTS:

Diese Option konfiguriert, wie oft das Gerät durch den Testfall getrennt wird. Dies wird vom Reconnect-Backoff-Test verwendet. Der Standardwert ist 5 Versuche. Dieser Wert ist von 5 bis 10 konfigurierbar.

LONG_PAYLOAD_FORMAT:

Das Format der Nachrichtennutzlast, die das Gerät erwartet, wenn der Testfall zu einem QoS 1-Thema veröffentlicht wird, das vom Gerät abonniert wurde.

Definition des API-Testfalls:

{ "tests":[ { "name":"my_mqtt_long_duration_test", "configuration": { // optional "OPERATIONS": ["PUBLISH", "SUBSCRIBE"], "SCENARIOS": [ "LONG_SERVER_DISCONNECT", "RECONNECT_BACK_OFF", "KEEP_ALIVE", "RECEIVE_LARGE_PAYLOAD", "INTERMITTENT_CONNECTIVITY", "PERSISTENT_SESSION", ], "BASIC_TESTS_EXECUTION_TIMEOUT": 60, // in minutes (60 minutes by default) "LONG_SERVER_DISCONNECT_TIME": 60, // in minutes (120 minutes by default) "ADDITIONAL_EXECUTION_TIME": 60, // in minutes (0 minutes by default) "BACKOFF_CONNECTION_ATTEMPTS": "5", "LONG_PAYLOAD_FORMAT":"{"message":"${payload}"}" }, "test":{ "id":"MQTT_Long_Duration", "version":"0.0.0" } } ] }

Zusammenfassungsprotokoll des MQTT-Testfalls mit langer Dauer

Der MQTT-Testfall mit langer Dauer wird länger als normale Testfälle ausgeführt. Es wird ein separates Zusammenfassungsprotokoll bereitgestellt, das wichtige Ereignisse wie Geräteverbindungen, Veröffentlichungen und Abonnieren während der Ausführung auflistet. Zu den Details gehört, was getestet wurde, was nicht getestet wurde und was fehlgeschlagen ist. Am Ende des Protokolls enthält der Test eine Zusammenfassung aller Ereignisse, die während der Ausführung des Testfalls aufgetreten sind. Dies umfasst:

  • Der Keep-Alive-Timer ist auf dem Gerät konfiguriert.

  • Auf dem Gerät ist ein persistentes Sitzungs-Flag konfiguriert.

  • Die Anzahl der Geräteverbindungen während des Testlaufs.

  • Der Backoff-Typ für die Wiederverbindung des Geräts, sofern er für den Backoff-Test für die Wiederherstellung der Verbindung validiert wurde.

  • Die Themen, zu denen das Gerät während der Testfallausführung veröffentlicht hat.

  • Die Themen, die das Gerät während der Testfallausführung abonniert hat.