Konfigurieren Sie den IDT Test-Orchestrator - Kostenlos RTOS

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.

Konfigurieren Sie den IDT Test-Orchestrator

Ab Version IDT 4.5.2 IDT enthält es eine neue Test Orchestrator-Komponente. Der Test-Orchestrator ist eine IDT Komponente, die den Ausführungsablauf der Testsuite steuert und den Testbericht generiert, nachdem alle Tests ausgeführt wurdenIDT. Der Testorchestrator bestimmt die Testauswahl und die Reihenfolge, in der Tests ausgeführt werden, auf der Grundlage benutzerdefinierter Regeln.

Wenn Ihre Testsuite keinen benutzerdefinierten Test-Orchestrator enthält, generiert er einen Test-Orchestrator für IDT Sie.

Der Standard-Test-Orchestrator führt die folgenden Funktionen aus:

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

  • Wenn keine bestimmten Testgruppen ausgewählt sind, wird jede Testgruppe in der Testsuite in zufälliger Reihenfolge ausgeführt.

  • Generiert Berichte und druckt eine Konsolenübersicht aus, in der die Testergebnisse für jede Testgruppe und jeden Testfall angezeigt werden.

Der Testorchestrator ersetzt die IDT Zustandsmaschine. Es wird dringend empfohlen, anstelle der IDT State Machine den Test Orchestrator für die Entwicklung Ihrer Testsuiten zu verwenden. Der Test-Orchestrator bietet die folgenden verbesserten Funktionen:

  • Verwendet ein deklaratives Format im Vergleich zum imperativen Format, das die IDT Zustandsmaschine verwendet. Auf diese Weise können Sie angeben, welche Tests Sie ausführen möchten und wann Sie sie ausführen möchten.

  • Verwaltet die Bearbeitung bestimmter Gruppen, die Berichtsgenerierung, die Fehlerbehandlung und die Ergebnisverfolgung, sodass Sie diese Aktionen nicht manuell verwalten müssen.

  • Verwendet das YAML Format, das Kommentare standardmäßig unterstützt.

  • Benötigt 80 Prozent weniger Festplattenspeicher als der Test-Orchestrator, um denselben Workflow zu definieren.

  • Fügt eine Validierung vor dem Test hinzu, um sicherzustellen, dass Ihre Workflow-Definition keine falschen Test IDs - oder zirkulären Abhängigkeiten enthält.

Testen Sie das Orchestrator-Format

Sie können die folgende Vorlage verwenden, um Ihre eigene custom-test-suite-folder/suite/test_orchestrator.yaml Datei zu konfigurieren:

Aliases: string: context-expression ConditionalTests: - Condition: context-expression Tests: - test-descriptor Order: - - group-descriptor - group-descriptor Features: - Name: feature-name Value: support-description Condition: context-expression Tests: - test-descriptor OneOfTests: - test-descriptor IsRequired: boolean

Nachfolgend sind alle Pflichtfelder beschrieben:

Aliases

Optional. Benutzerdefinierte Zeichenketten, die Kontextausdrücken zugeordnet sind. Aliase ermöglichen es Ihnen, benutzerfreundliche Namen zu generieren, um Kontextausdrücke in Ihrer Test-Orchestrator-Konfiguration zu identifizieren. Dies ist besonders nützlich, wenn Sie komplexe Kontextausdrücke oder Ausdrücke erstellen, die Sie an mehreren Stellen verwenden.

Sie können Kontextausdrücke verwenden, um Kontextabfragen zu speichern, mit denen Sie auf Daten aus anderen IDT Konfigurationen zugreifen können. Weitere Informationen finden Sie unter Greifen Sie auf Daten im Kontext zu.

Beispiel

Aliases: FizzChosen: "'{{$pool.features[?(@.name == 'Fizz')].value[0]}}' == 'yes'" BuzzChosen: "'{{$pool.features[?(@.name == 'Buzz')].value[0]}}' == 'yes'" FizzBuzzChosen: "'{{$aliases.FizzChosen}}' && '{{$aliases.BuzzChosen}}'"
ConditionalTests

Optional. Eine Liste der Bedingungen und der entsprechenden Testfälle, die ausgeführt werden, wenn jede Bedingung erfüllt ist. Jede Bedingung kann mehrere Testfälle haben. Sie können einen bestimmten Testfall jedoch nur einer Bedingung zuweisen.

IDTFührt standardmäßig jeden Testfall aus, der keiner Bedingung in dieser Liste zugewiesen ist. Wenn Sie diesen Abschnitt nicht angeben, werden alle Testgruppen in der Testsuite IDT ausgeführt.

Jedes Element in der ConditionalTests Liste enthält die folgenden Parameter:

Condition

Ein Kontextausdruck, der einen booleschen Wert ergibt. Wenn der ausgewertete Wert wahr ist, werden die im Parameter angegebenen Testfälle IDT ausgeführt. Tests

Tests

Die Liste der Testdeskriptoren.

Jeder Testdeskriptor verwendet die Testgruppen-ID und einen oder mehrere Testfälle, um die einzelnen Tests IDs zu identifizieren, die von einer bestimmten Testgruppe aus ausgeführt werden sollen. Der Testdeskriptor verwendet das folgende Format:

GroupId: group-id CaseIds: [test-id, test-id] # optional

Beispiel

Im folgenden Beispiel werden generische Kontextausdrücke verwendet, die Sie als Aliases definieren können.

ConditionalTests: - Condition: "{{$aliases.Condition1}}" Tests: - GroupId: A - GroupId: B - Condition: "{{$aliases.Condition2}}" Tests: - GroupId: D - Condition: "{{$aliases.Condition1}} || {{$aliases.Condition2}}" Tests: - GroupId: C

IDTWählt Testgruppen auf der Grundlage der definierten Bedingungen wie folgt aus:

  • Wenn Condition1 dies zutrifft, werden die Tests in den Testgruppen A, B und C IDT ausgeführt.

  • Wenn Condition2 wahr, werden die Tests in den Testgruppen C und D IDT ausgeführt.

Order

Optional. Die Reihenfolge, in der die Tests ausgeführt werden. Sie geben die Testreihenfolge auf der Ebene der Testgruppen an. Wenn Sie diesen Abschnitt nicht angeben, werden alle zutreffenden Testgruppen in zufälliger Reihenfolge IDT ausgeführt. Der Wert von Order ist eine Liste von Gruppendeskriptorlisten. Jede Testgruppe, in der Sie nicht aufgeführt sindOrder, kann parallel zu jeder anderen aufgelisteten Testgruppe ausgeführt werden.

Jede Gruppendeskriptorliste enthält einen oder mehrere Gruppendeskriptoren und gibt die Reihenfolge an, in der die Gruppen ausgeführt werden sollen, die in den einzelnen Deskriptoren angegeben sind. Sie können die folgenden Formate verwenden, um einzelne Gruppendeskriptoren zu definieren:

  • group-id— Die Gruppen-ID einer vorhandenen Testgruppe.

  • [group-id, group-id]— Liste der Testgruppen, die in beliebiger Reihenfolge relativ zueinander ausgeführt werden können.

  • "*"— Platzhalter. Dies entspricht der Liste aller Testgruppen, die noch nicht in der aktuellen Gruppendeskriptorliste angegeben sind.

Der Wert für Order muss außerdem die folgenden Anforderungen erfüllen:

  • Die TestgruppeIDs, die Sie in einem Gruppendeskriptor angeben, muss in Ihrer Testsuite vorhanden sein.

  • Jede Gruppendeskriptorliste muss mindestens eine Testgruppe enthalten.

  • Jede Gruppendeskriptorliste muss eine eindeutige Gruppe enthalten. IDs Sie können eine Testgruppen-ID nicht innerhalb einzelner Gruppendeskriptoren wiederholen.

  • Eine Gruppendeskriptorliste kann höchstens einen Platzhalter-Gruppendeskriptor enthalten. Der Platzhalter-Gruppendeskriptor muss das erste oder letzte Element in der Liste sein.

Beispiel

Für eine Testsuite, die die Testgruppen A, B, C, D und E enthält, zeigt die folgende Beispielliste verschiedene Möglichkeiten, IDT anzugeben, dass zuerst Testgruppe A, dann Testgruppe B und dann die Testgruppen C, D und E in beliebiger Reihenfolge ausgeführt werden sollen.

  • Order: - - A - B - [C, D, E]
  • Order: - - A - B - "*"
  • Order: - - A - B - - B - C - - B - D - - B - E
Features

Optional. Die Liste der Produktfunktionen, die Sie der awsiotdevicetester_report.xml Datei hinzufügen möchtenIDT. Wenn Sie diesen Abschnitt nicht angeben, IDT werden dem Bericht keine Produktfunktionen hinzugefügt.

Bei einer Produktfunktion handelt es sich um benutzerdefinierte Informationen über bestimmte Kriterien, die ein Gerät erfüllen könnte. Beispielsweise kann die MQTT Produktfunktion angeben, dass das Gerät MQTT Nachrichten ordnungsgemäß veröffentlicht. In awsiotdevicetester_report.xml werden Produktmerkmale alssupported, not-supported oder als benutzerdefinierter benutzerdefinierter Wert festgelegt, je nachdem, ob die angegebenen Tests bestanden wurden.

Jedes Element in der Features Liste besteht aus den folgenden Parametern:

Name

Der Name der Funktion.

Value

Optional. Der benutzerdefinierte Wert, den Sie anstelle von im Bericht verwenden möchtensupported. Wenn dieser Wert nicht angegeben ist, IDT legt based den Feature-Wert auf supported oder not-supported basierend auf Testergebnissen fest. Wenn Sie dasselbe Feature mit unterschiedlichen Bedingungen testen, können Sie für jede Instanz dieses Features in der Features Liste einen benutzerdefinierten Wert verwenden und die Feature-Werte für unterstützte Bedingungen IDT verketten. Weitere Informationen finden Sie unter

Condition

Ein Kontextausdruck, der zu einem booleschen Wert ausgewertet wird. Wenn der ausgewertete Wert wahr ist, wird die Funktion dem Testbericht IDT hinzugefügt, nachdem die Ausführung der Testsuite abgeschlossen ist. Wenn der ausgewertete Wert falsch ist, ist der Test nicht im Bericht enthalten.

Tests

Optional. Die Liste der Testdeskriptoren. Alle Tests, die in dieser Liste aufgeführt sind, müssen bestanden werden, damit die Funktion unterstützt wird.

Jeder Testdeskriptor in dieser Liste verwendet die Testgruppen-ID und einen oder mehrere Testfälle, um die einzelnen Tests IDs zu identifizieren, die von einer bestimmten Testgruppe aus ausgeführt werden sollen. Der Testdeskriptor verwendet das folgende Format:

GroupId: group-id CaseIds: [test-id, test-id] # optional

Sie müssen OneOfTests für jedes Feature in der Features Liste entweder Tests oder angeben.

OneOfTests

Optional. Die Liste der Testdeskriptoren. Mindestens einer der in dieser Liste aufgeführten Tests muss bestanden werden, damit die Funktion unterstützt wird.

Jeder Testdeskriptor in dieser Liste verwendet die Testgruppen-ID und einen oder mehrere Testfälle, um die einzelnen Tests IDs zu identifizieren, die von einer bestimmten Testgruppe aus ausgeführt werden sollen. Der Testdeskriptor verwendet das folgende Format:

GroupId: group-id CaseIds: [test-id, test-id] # optional

Sie müssen OneOfTests für jedes Feature in der Features Liste entweder Tests oder angeben.

IsRequired

Der boolesche Wert, der definiert, ob die Funktion im Testbericht erforderlich ist. Der Standardwert ist false.

Testen Sie den Orchestrator-Kontext

Der Test-Orchestrator-Kontext ist ein schreibgeschütztes JSON Dokument, das Daten enthält, die dem Test-Orchestrator während der Ausführung zur Verfügung stehen. Der Test-Orchestrator-Kontext ist nur vom Test-Orchestrator aus zugänglich und enthält Informationen, die den Testablauf bestimmen. Sie können beispielsweise Informationen verwenden, die von Testläufern in der userdata.json Datei konfiguriert wurden, um festzustellen, ob ein bestimmter Test ausgeführt werden muss.

Der Test-Orchestrator-Kontext verwendet das folgende Format:

{ "pool": { <device-json-pool-element> }, "userData": { <userdata-json-content> }, "config": { <config-json-content> } }
pool

Informationen über den Gerätepool, der für den Testlauf ausgewählt wurde. Für einen ausgewählten Gerätepool werden diese Informationen aus dem entsprechenden Gerätepool-Array-Element der obersten Ebene abgerufen, das in der device.json Datei definiert ist.

userData

Informationen in der userdata.json Datei.

config

Informationen in der config.json Datei.

Sie können den Kontext mithilfe der JSONPath Notation abfragen. Die Syntax für JSONPath Abfragen in Statusdefinitionen lautet{{query}}. Wenn Sie auf Daten aus dem Test Orchestrator-Kontext zugreifen, stellen Sie sicher, dass jeder Wert eine Zeichenfolge, eine Zahl oder einen booleschen Wert ergibt.

Weitere Hinweise zur Verwendung der JSONPath Notation für den Zugriff auf Daten aus dem Kontext finden Sie unter. Benutze den IDT Kontext