Erstellen von IDT-Testsuite-Konfigurationsdateien - AWS IoT Greengrass

AWS IoT Greengrass Version 1 trat am 30. Juni 2023 in die erweiterte Lebensphase ein. Weitere Informationen finden Sie in der AWS IoT Greengrass V1 Wartungsrichtlinie. Nach diesem Datum AWS IoT Greengrass V1 werden keine Updates mehr veröffentlicht, die Funktionen, Verbesserungen, Bugfixes oder Sicherheitspatches bieten. Geräte, die auf laufen, werden AWS IoT Greengrass V1 nicht gestört und funktionieren weiterhin und stellen eine Verbindung zur Cloud her. Wir empfehlen Ihnen dringend, zu migrieren AWS IoT Greengrass Version 2, da dies wichtige neue Funktionen und Unterstützung für zusätzliche Plattformen bietet.

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.

Erstellen von IDT-Testsuite-Konfigurationsdateien

In diesem Abschnitt werden die Formate beschrieben, in denen Sie JSON-Konfigurationsdateien erstellen, die Sie beim Schreiben einer benutzerdefinierten Testsuite einbeziehen.

Erforderliche JSON-Dateien
suite.json

Enthält Informationen zur Testsuite Siehe Konfigurieren Sie suite.json.

group.json

Enthält Informationen zu einer Testgruppe. Sie müssen eine erstellengroup.json-Datei für jede Testgruppe in Ihrer Testsuite. Siehe Konfigurieren von group.json.

test.json

Enthält Informationen zu einem Testfall. Sie müssen eine erstellentest.json-Datei für jeden Testfall in Ihrer Testsuite. Siehe Konfigurieren Sie test.json.

Optionale JSON-Dateien
state_machine.json

Definiert, wie Tests ausgeführt werden, wenn IDT die Testsuite ausführt. Siehe Konfigurieren Sie state_machine.json.

userdata_schema.json

Definiert das Schema füruserdata.jsonOrdnerdie Testläufer in ihre Einstellungskonfiguration aufnehmen können. Dieuserdata.jsonwird für zusätzliche Konfigurationsinformationen verwendet, die zum Ausführen des Tests erforderlich sind, aber nicht imdevice.jsonfile. Siehe Konfigurieren userdata_schema.json.

JSON-Konfigurationsdateien werden in Ihrem<custom-test-suite-folder>wie hier dargestellt.

<custom-test-suite-folder> └── suite ├── suite.json ├── state_machine.json ├── userdata_schema.json ├── <test-group-folder> ├── group.json ├── <test-case-folder> └── test.json

Konfigurieren Sie suite.json

Diesuite.jsonfile legt Umgebungsvariablen fest und bestimmt, ob Benutzerdaten zum Ausführen der Testsuite erforderlich sind. Konfigurieren Sie Ihre<custom-test-suite-folder>/suite/suite.jsonfile:

{ "id": "<suite-name>_<suite-version>", "title": "<suite-title>", "details": "<suite-details>", "userDataRequired": true | false, "environmentVariables": [ { "key": "<name>", "value": "<value>", }, ... { "key": "<name>", "value": "<value>", } ] }

Nachfolgend sind alle Pflichtfelder beschrieben:

id

Eine eindeutige benutzerdefinierte ID für die Testsuite. Der Wert vonidmuss mit dem Namen des Testsuite-Ordners übereinstimmen, in dem diesuite.jsonDie Datei befindet sich. Der Name der Suite und die Suite-Version müssen außerdem die folgenden Anforderungen erfüllen:

  • <suite-name>darf keine Unterstriche enthalten.

  • <suite-version>ist bezeichnet alsx.x.x, wobeixist eine Zahl.

Die ID wird in IDT-generierten Testberichten angezeigt.

title

Ein benutzerdefinierter Name für das Produkt oder Feature, das von dieser Testsuite getestet wird. Der Name wird in der IDT CLI für Testläufer angezeigt.

details

Eine kurze Beschreibung des Zwecks der Testsuite

userDataRequired

Definiert, ob Testläufer benutzerdefinierte Informationen in eineuserdata.jsonfile. Wenn Sie diesen Wert auf setzentrue, Sie müssen auch dieuserdata_schema.jsonOrdnerin Ihrem Test-Suite-Ordner.

environmentVariables

Optional. Ein Array an Umgebungsvariablen, die für diese Testsuite festgelegt werden.

environmentVariables.key

Der Name der Umgebungsvariable.

environmentVariables.value

Der Wert der Umgebungsvariable.

Konfigurieren von group.json

Diegroup.json-Datei legt fest, ob eine Testgruppe erforderlich oder optional ist. Konfigurieren Sie Ihre<custom-test-suite-folder>/suite/<test-group>/group.jsonfile:

{ "id": "<group-id>", "title": "<group-title>", "details": "<group-details>", "optional": true | false, }

Nachfolgend sind alle Pflichtfelder beschrieben:

id

Eine eindeutige benutzerdefinierte ID für die Testgruppe. Der Wert vonidmuss mit dem Namen des Testgruppenordners übereinstimmen, in dem diegroup.jsonDiese Datei befindet sich und darf keine Unterstriche (_) enthalten. Die ID wird in IDT-generierten Testberichten verwendet.

title

Ein beschreibender Name für die Testgruppe. Der Name wird in der IDT CLI für Testläufer angezeigt.

details

Eine kurze Beschreibung des Zwecks der Testgruppe.

optional

Optional. Legen Sie auf festtrueum diese Testgruppe als optionale Gruppe anzuzeigen, nachdem IDT die erforderlichen Tests ausgeführt hat. Der Standardwert ist false.

Konfigurieren Sie test.json

Dietest.json-Datei bestimmt die ausführbaren Testfalldateien und die Umgebungsvariablen, die von einem Testfall verwendet werden. Weitere Informationen zum Erstellen von ausführbaren Testfalldateien finden Sie unterErstellen Sie ausführbare IDT-Testfalldateienaus.

Konfigurieren Sie Ihre<custom-test-suite-folder>/suite/<test-group>/<test-case>/test.jsonfile:

{ "id": "<test-id>", "title": "<test-title>", "details": "<test-details>", "requireDUT": true | false, "requiredResources": [ { "name": "<resource-name>", "features": [ { "name": "<feature-name>", "version": "<feature-version>", "jobSlots": <job-slots> } ] } ], "execution": { "timeout": <timeout>, "mac": { "cmd": "/path/to/executable", "args": [ "<argument>" ], }, "linux": { "cmd": "/path/to/executable", "args": [ "<argument>" ], }, "win": { "cmd": "/path/to/executable", "args": [ "<argument>" ] } }, "environmentVariables": [ { "key": "<name>", "value": "<value>", } ] }

Nachfolgend sind alle Pflichtfelder beschrieben:

id

Eine eindeutige benutzerdefinierte ID für den Testfall. Der Wert vonidmuss mit dem Namen des Testfallordners übereinstimmen, in dem dietest.jsonDiese Datei befindet sich und darf keine Unterstriche (_) enthalten. Die ID wird in IDT-generierten Testberichten verwendet.

title

Ein aussagekräftiger Name für den Testfall. Der Name wird in der IDT CLI für Testläufer angezeigt.

details

Eine kurze Beschreibung des Zwecks des Testfalls.

requireDUT

Optional. Legen Sie auf festtruewenn ein Gerät zum Ausführen dieses Tests benötigt wird, andernfalls auffalseaus. Der Standardwert ist true. Testläufer konfigurieren die Geräte, mit denen sie den Test in ihremdevice.jsonfile.

requiredResources

Optional. Ein Array, das Informationen über Ressourcengeräte liefert, die zum Ausführen dieses Tests benötigt werden.

requiredResources.name

Der eindeutige Name, der dem Ressourcengerät gegeben werden soll, wenn dieser Test ausgeführt wird.

requiredResources.features

Ein Array benutzerdefinierter Ressourcengeräte-Features.

requiredResources.features.name

Der Name der Funktion. Die Gerätefunktion, für die Sie dieses Gerät verwenden möchten. Dieser Name wird mit dem Feature-Namen abgeglichen, den der Testläufer imresource.jsonfile.

requiredResources.features.version

Optional. Die Version der Funktion. Dieser Wert wird mit der Feature-Version abgeglichen, die der Testläufer imresource.jsonfile. Wenn keine Version bereitgestellt wird, wird die Funktion nicht aktiviert. Lassen Sie dieses Feld leer, wenn keine Versionsnummer für die Funktion erforderlich ist.

requiredResources.features.jobSlots

Optional. Die Anzahl der gleichzeitigen Tests, die diese Funktion unterstützen kann. Der Standardwert ist 1. Wenn Sie möchten, dass IDT verschiedene Geräte für einzelne Funktionen verwendet, empfehlen wir Ihnen, diesen Wert auf1aus.

execution.timeout

Die Zeitdauer (in Millisekunden), die IDT auf den Abschluss des Tests wartet. Weitere Informationen zum Festlegen dieses Werts finden Sie unterErstellen Sie ausführbare IDT-Testfalldateienaus.

execution.os

Die ausführbaren Testfalldateien, die basierend auf dem Betriebssystem des Host-Computers ausgeführt werden sollen, auf dem IDT ausgeführt wird. Unterstützte Werte sind linux, mac und win.

execution.os.cmd

Der Pfad zur ausführbaren Testfalldatei, die Sie für das angegebene Betriebssystem ausführen möchten. Dieser Speicherort muss sich im Systempfad befinden.

execution.os.args

Optional. Die Argumente, die zur Ausführung der ausführbaren Testfalldatei angegeben werden sollen.

environmentVariables

Optional. Ein Array an Umgebungsvariablen, die für diesen Testfall festgelegt wurden.

environmentVariables.key

Der Name der Umgebungsvariable.

environmentVariables.value

Der Wert der Umgebungsvariable.

Anmerkung

Wenn Sie dieselbe Umgebungsvariable imtest.json-Datei und in dersuite.jsonfile, der Wert imtest.json-Datei hat Vorrang.

Konfigurieren Sie state_machine.json

Ein State-Computer ist ein Konstrukt, das den Ausführungsablauf der Testsuite steuert. Es bestimmt den Startstatus einer Testsuite, verwaltet Zustandsübergänge basierend auf benutzerdefinierten Regeln und wechselt weiter durch diese Zustände, bis sie den Endzustand erreicht.

Wenn Ihre Testsuite keinen benutzerdefinierten Zustandscomputer enthält, generiert IDT einen Zustandscomputer für Sie. Der Standardzustandsmaschine führt die folgenden Funktionen aus:

  • Bietet Testläufern die Möglichkeit, bestimmte Testgruppen anstelle der gesamten Testsuite auszuwählen und auszuführen.

  • Wenn keine bestimmten Testgruppen ausgewählt sind, führt jede Testgruppe in der Testsuite in einer zufälligen Reihenfolge aus.

  • Generiert Berichte und druckt eine Konsolenzusammenfassung, die die Testergebnisse für jede Testgruppe und jeden Testfall anzeigt.

Weitere Informationen zur Funktionsweise der IDT-Zustandsautomat finden Sie unterKonfigurieren Sie den IDT-Statuscomputeraus.

Konfigurieren userdata_schema.json

Dieuserdata_schema.jsonlegt das Schema fest, in dem Testläufer Benutzerdaten bereitstellen. Benutzerdaten sind erforderlich, wenn Ihre Testsuite Informationen benötigt, die nicht imdevice.jsonfile. Beispielsweise benötigen Ihre Tests möglicherweise Anmeldeinformationen für Wi-Fi-Netzwerke, bestimmte offene Ports oder Zertifikate, die ein Benutzer bereitstellen muss. Diese Informationen können IDT als Eingabeparameter namensuserdata, dessen Wert einuserdata.jsonDatei, die Benutzer in ihrer<device-tester-extract-location>/configfolder. Das Format deruserdata.jsondie Datei basiert auf deruserdata_schema.json-Datei, die Sie in die Testsuite einbinden.

Um anzugeben, dass Testläufer eineuserdata.jsonfile:

  1. In dersuite.json-Datei, setzenuserDataRequiredzutrueaus.

  2. In Ihrer<custom-test-suite-folder>, erstelle einuserdata_schema.jsonfile.

  3. Bearbeiten Sie dieuserdata_schema.jsonDatei zum Erstellen einer gültigenIETF-Entwurf v4 JSON-Schemaaus.

Wenn IDT Ihre Testsuite ausführt, liest es das Schema automatisch und überprüft damit dieuserdata.jsonvom Testläufer bereitgestellte Datei. Falls gültig, ist der Inhalt desuserdata.jsondie Datei ist sowohl in derIDT-Kontextund imKontext der Zustandsautomatenaus.