Erstellen von IDT-Testsuite-Konfigurationsdateien - AWS IoT Greengrass

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 Konfigurationsdateien erstellen, die Sie beim Schreiben einer benutzerdefinierten Testsuite angeben.

Erforderliche Konfigurationsdateien
suite.json

Enthält Informationen zur Testsuite. Siehe Suite.json konfigurieren.

group.json

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

test.json

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

Optionale Konfigurationsdateien
test_orchestrator.yaml oder state_machine.json

Definiert, wie Tests ausgeführt werden, wenn IDT die Testsuite ausführt. SSe Konfigurieren von test_orchestrator.yaml.

Anmerkung

Ab IDT v4.5.1 verwenden Sie die -test_orchestrator.yamlDatei, um den Test-Workflow zu definieren. In früheren Versionen von IDT verwenden Sie die -state_machine.jsonDatei. Weitere Informationen zum Zustandsautomaten finden Sie unter Konfigurieren Sie den IDT-Statuscomputer.

userdata_schema.json

Definiert das Schema für die userdata.json Datei, die Test-Runner in ihre Einstellungskonfiguration aufnehmen können. Die userdata.json Datei wird für alle zusätzlichen Konfigurationsinformationen verwendet, die zum Ausführen des Tests erforderlich sind, aber nicht in der device.json Datei vorhanden sind. Siehe Konfigurieren von userdata_schema.json.

Konfigurationsdateien werden <custom-test-suite-folder> wie hier gezeigt in Ihrem abgelegt.

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

Suite.json konfigurieren

Die suite.json Datei legt Umgebungsvariablen fest und bestimmt, ob Benutzerdaten zum Ausführen der Testsuite erforderlich sind. Verwenden Sie die folgende Vorlage, um Ihre -<custom-test-suite-folder>/suite/suite.jsonDatei zu konfigurieren:

{ "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 von id muss mit dem Namen des Testsuite-Ordners übereinstimmen, in dem sich die suite.json Datei befindet. Der Suite-Name und die Suite-Version müssen außerdem die folgenden Anforderungen erfüllen:

  • <suite-name> darf keine Unterstriche enthalten.

  • <suite-version> wird als bezeichnetx.x.x, wobei eine Zahl x ist.

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 Test Runner angezeigt.

details

Eine kurze Beschreibung des Zwecks der Testsuite.

userDataRequired

Definiert, ob Test-Runner benutzerdefinierte Informationen in eine userdata.json Datei aufnehmen müssen. Wenn Sie diesen Wert auf festlegentrue, müssen Sie auch die -userdata_schema.jsonDatei in Ihren Testsuite-Ordner aufnehmen.

environmentVariables

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

environmentVariables.key

Der Name der Umgebungsvariable.

environmentVariables.value

Der Wert der Umgebungsvariable.

Konfigurieren von group.json

Die group.json Datei definiert, ob eine Testgruppe erforderlich oder optional ist. Verwenden Sie die folgende Vorlage, um Ihre -<custom-test-suite-folder>/suite/<test-group>/group.jsonDatei zu konfigurieren:

{ "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 von id muss mit dem Namen des Testgruppenordners übereinstimmen, in dem sich die group.json Datei befindet, 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 Test Runner angezeigt.

details

Eine kurze Beschreibung des Zwecks der Testgruppe.

optional

Optional. Legen Sie den Wert auf festtrue, um diese Testgruppe als optionale Gruppe anzuzeigen, nachdem IDT die Ausführung der erforderlichen Tests abgeschlossen hat. Der Standardwert ist false.

Konfigurieren von test.json

Die test.json Datei bestimmt die ausführbaren Testfall-Dateien und die Umgebungsvariablen, die von einem Testfall verwendet werden. Weitere Informationen zum Erstellen von ausführbaren Testfalldateien finden Sie unter Ausführbare IDT-Testfalldateien erstellen.

Verwenden Sie die folgende Vorlage, um Ihre -<custom-test-suite-folder>/suite/<test-group>/<test-case>/test.jsonDatei zu konfigurieren:

{ "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 von id muss mit dem Namen des Testfallordners übereinstimmen, in dem sich die test.json Datei befindet, und darf keine Unterstriche () enthalten_. Die ID wird in IDT-generierten Testberichten verwendet.

title

Ein beschreibender Name für den Testfall. Der Name wird in der IDT-CLI für Test Runner angezeigt.

details

Eine kurze Beschreibung des Zwecks des Testfalls.

requireDUT

Optional. Setzen Sie auf , true wenn ein Gerät erforderlich ist, um diesen Test auszuführen, andernfalls auf false. Der Standardwert ist true. Test Runner konfigurieren die Geräte, die sie zum Ausführen des Tests in ihrer -device.jsonDatei verwenden werden.

requiredResources

Optional. Ein Array, das Informationen über Ressourcengeräte bereitstellt, die für die Ausführung dieses Tests erforderlich sind.

requiredResources.name

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

requiredResources.features

Ein Array von benutzerdefinierten Funktionen für Ressourcengeräte.

requiredResources.features.name

Der Name des Features. Die Gerätefunktion, für die Sie dieses Gerät verwenden möchten. Dieser Name wird mit dem Feature-Namen abgeglichen, der vom Test-Runner in der resource.json Datei bereitgestellt wird.

requiredResources.features.version

Optional. Die Version der Funktion. Dieser Wert wird mit der Feature-Version abgeglichen, die vom Test-Runner in der resource.json Datei bereitgestellt wird. Wenn keine Version angegeben wird, wird die Funktion nicht überprüft. Wenn für das Feature keine Versionsnummer erforderlich ist, lassen Sie dieses Feld leer.

requiredResources.features.jobSlots

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

execution.timeout

Die Zeit (in Millisekunden), die IDT auf den Abschluss des Tests wartet. Weitere Informationen zum Festlegen dieses Werts finden Sie unter Ausführbare IDT-Testfalldateien erstellen.

execution.os

Die ausführbaren Testfall-Dateien, 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 Testfall-Datei, 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 für die Ausführung der ausführbaren Testfall-Datei angegeben werden sollen.

environmentVariables

Optional. Ein Array von 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 in der test.json Datei und in der suite.json Datei angeben, hat der Wert in der test.json Datei Vorrang.

Konfigurieren von test_orchestrator.yaml

Ein Testorchestrator ist ein Konstrukt, das den Testsuite-Ausführungsfluss steuert. Sie bestimmt den Startstatus einer Testsuite, verwaltet Statusübergänge basierend auf benutzerdefinierten Regeln und wechselt weiterhin durch diese Zustände, bis sie den Endstatus erreicht.

Wenn Ihre Testsuite keinen benutzerdefinierten Testorchestrator enthält, generiert IDT einen Testorchestrator für Sie.

Der Standard-Testorchestrator führt die folgenden Funktionen aus:

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

  • Wenn bestimmte Testgruppen nicht ausgewählt sind, führt jede Testgruppe in der Testsuite nach dem Zufallsprinzip aus.

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

Weitere Informationen darüber, wie der IDT-Testorchestrator funktioniert, finden Sie unter Konfigurieren Sie den IDT-Test-Orchestrator.

Konfigurieren von userdata_schema.json

Die Datei userdata_schema.json bestimmt das Schema, in dem Test Runner Benutzerdaten bereitstellen. Benutzerdaten sind erforderlich, wenn Ihre Testsuite Informationen erfordert, die nicht in der device.json Datei vorhanden sind. Ihre Tests benötigen beispielsweise möglicherweise Wi-Fi-Netzwerkanmeldeinformationen, bestimmte offene Ports oder Zertifikate, die ein Benutzer bereitstellen muss. Diese Informationen können IDT als Eingabeparameter mit dem Namen zur Verfügung gestellt werdenuserdata. Dabei handelt es sich um den Wert, für den es sich um eine userdata.json Datei handelt, die Benutzer in ihrem <device-tester-extract-location>/config Ordner erstellen. Das Format der userdata.json Datei basiert auf der userdata_schema.json Datei, die Sie in die Testsuite aufnehmen.

So geben Sie an, dass Test Runner eine -userdata.jsonDatei bereitstellen müssen:

  1. Setzen Sie in der suite.json Datei userDataRequired auf true.

  2. <custom-test-suite-folder>Erstellen Sie in Ihrem eine -userdata_schema.jsonDatei.

  3. Bearbeiten Sie die userdata_schema.json Datei , um ein gültiges JSON-Schema für IETF Entwurf v4 zu erstellen.

Wenn IDT Ihre Testsuite ausführt, liest es das Schema automatisch und verwendet es, um die vom Test-Runner bereitgestellte userdata.json Datei zu validieren. Falls gültig, ist der Inhalt der userdata.json Datei sowohl im IDT-Kontext als auch im Testorchestrator-Kontext verfügbar.