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 IDT v4.5.1 enthält IDT ein neuesTest-OrchestratorKomponente. Der Testorchestrator ist eine IDT-Komponente, die den Ausführungsablauf der Testsuite steuert und den Testbericht generiert, nachdem IDT alle Tests ausgeführt hat. Der Testorchestrator bestimmt die Testauswahl und die Reihenfolge, in der Tests ausgeführt werden, basierend auf benutzerdefinierten Regeln.
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 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.
Der Testorchestrator ersetzt den IDT-Testorchestrator. Wir empfehlen dringend, dass Sie den Testorchestrator verwenden, um Ihre Test-Suiten anstelle des IDT-Testorchestrators zu entwickeln. Der Test-Orchestrator bietet die folgenden verbesserten Funktionen:
-
Verwendet ein deklaratives Format im Vergleich zu dem zwingenden Format, das der IDT-Statuscomputer verwendet. Dies ermöglicht es Ihnenspezifizierenwelche Tests Sie ausführen möchten undwenndu willst sie laufen lassenaus.
-
Verwaltet die spezifische Gruppenbehandlung, Berichtsgenerierung, Fehlerbehandlung und Ergebnisverfolgungdamit Sie nicht benötigt werdenum diese Aktionen manuell zu verwalten.
-
Verwendet das YAML-Format, das standardmäßig Kommentare unterstützt.
-
Benötigt80 Prozentweniger Speicherplatz 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äre Abhängigkeiten enthält
Test-Orchestrator-Format
Sie können die folgende Vorlage verwenden, um Ihre eigene zu konfigurieren
file: <custom-test-suite-folder>
/suite/test_orchestrator.yaml
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 Zeichenfolgen, die Kontextausdrücken zugeordnet sind. Aliase ermöglichen es Ihnen, Anzeigenamen zu generierenidentifizieren Sie Kontextausdrücke in Ihrer Test-Orchestrator-Konfiguration. 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 Zugriff auf Daten im Kontext.
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 die entsprechenden Testfälle, die ausgeführt werden, wenn jede Bedingung erfüllt ist. Jede Bedingung kann mehrere Testfälle haben; Sie können jedoch einen bestimmten Testfall nur einer Bedingung zuweisen.
Standardmäßig führt IDT jeden Testfall aus, der keiner Bedingung in dieser Liste zugewiesen ist. Wenn Sie diesen Abschnitt nicht angeben, führt IDT alle Testgruppen in der Testsuite aus.
Jeder Artikel im
ConditionalTests
Die Liste enthält die folgenden Parameter:Condition
-
Ein Kontextausdruck, der zu einer ausgewertet wirdBooleschWert. Wenn der ausgewertete Wert true ist, führt IDT die Testfälle aus, die im
Tests
-Parameter. Tests
-
Die Liste der Testdeskriptoren.
Jeder Testdeskriptor verwendet die Testgruppen-ID und eine oder mehrere Testfall-IDs, um die einzelnen Tests 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 definieren können
Aliases
aus.ConditionalTests: - Condition: "{{$aliases.Condition1}}" Tests: - GroupId: A - GroupId: B - Condition: "{{$aliases.Condition2}}" Tests: - GroupId: D - Condition: "{{$aliases.Condition1}} || {{$aliases.Condition2}}" Tests: - GroupId: C
Basierend auf den definierten Bedingungen wählt IDT Testgruppen wie folgt aus:
-
Wenn
Condition1
stimmt, IDT führt die Tests in den Testgruppen A, B und C. -
Wenn
Condition2
stimmt, IDT führt die Tests in den Testgruppen C und D durch.
Order
-
Optional. Die Reihenfolge, in der Tests durchgeführt werden sollen. Sie geben die Testreihenfolge auf Testgruppenebene an. Wenn Sie diesen Abschnitt nicht angeben, führt IDT alle anwendbaren Testgruppen in einer zufälligen Reihenfolge aus. Der Wert von
Order
ist eine Liste von Gruppendeskriptorlisten. Jede Testgruppe, in der Sie nicht auflistenOrder
, kann parallel zu jeder anderen aufgelisteten Testgruppe ausgeführt werden.Jede Gruppendeskriptorliste enthält einen von mehreren Gruppendeskriptoren und gibt die Reihenfolge an, in der die Gruppen ausgeführt werden sollen, die in jedem Deskriptor angegeben sind. Sie können die folgenden Formate verwenden, um einzelne Gruppendeskriptoren zu definieren:
-
— Die Gruppen-ID einer vorhandenen Testgruppe.group-id
-
[
— Liste der Testgruppen, die in beliebiger Reihenfolge relativ zueinander ausgeführt werden können.group-id
,group-id
] -
"*"
—Platzhalterzeichen. Dies entspricht der Liste aller Testgruppen, die nicht bereits in der aktuellen Gruppendeskriptorliste angegeben sind.
Der Wert für
Order
Sie müssen auch die folgenden Anforderungen erfüllen:-
Testgruppen-IDs, die Sie in einem Gruppendeskriptor angeben, müssen in Ihrer Testsuite vorhanden sein.
-
Jede Gruppendeskriptor-Liste muss mindestens eine Testgruppe umfassen.
-
Jede Gruppendeskriptorliste muss eindeutige Gruppen-IDs enthalten. Sie können eine Testgruppen-ID nicht innerhalb einzelner Gruppendeskriptoren wiederholen.
-
Eine Gruppendeskriptor-Liste kann höchstens über einen Platzhalterdeskriptor verfügen. Der Platzhaltergruppen-Deskriptor muss das erste oder letzte Element in der Liste sein.
Beispiele
Für eine Testsuite, die die Testgruppen A, B, C, D und E enthält, zeigt die folgende Beispielliste verschiedene Möglichkeiten, um anzugeben, dass IDT zuerst Testgruppe A ausführen, dann die Testgruppe B ausführen und dann die Testgruppen C, D und E in beliebiger Reihenfolge ausführen soll.
-
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 IDT dem
awsiotdevicetester_report.xml
file. Wenn Sie diesen Abschnitt nicht angeben, fügt IDT dem Bericht keine Produktfunktionen hinzu.Ein Produktmerkmal sind benutzerdefinierte Informationen zu bestimmten Kriterien, die ein Gerät möglicherweise erfüllen kann. Beispielsweise kann die MQTT-Produktfunktion angeben, dass das Gerät MQTT-Nachrichten ordnungsgemäß veröffentlicht. In :
awsiotdevicetester_report.xml
werden Produkteigenschaften alssupported
,not-supported
oder ein benutzerdefinierter benutzerdefinierter Wert, basierend darauf, ob bestimmte Tests bestanden wurden.Jeder Artikel im
Features
Die Liste enthält die folgenden Parameter:Name
-
Der Name der Funktion.
Value
-
Optional. Der benutzerdefinierte Wert, den Sie im Bericht anstelle von verwenden möchten
supported
aus. Wenn dieser Wert nicht angegeben wird, legt basierend IDT den Feature-Wert aufsupported
odernot-supported
basierend auf Testergebnissen. Wenn Sie dasselbe Feature mit verschiedenen Bedingungen testen, können Sie einen benutzerdefinierten Wert für jede Instanz dieses Features imFeatures
list, und IDT verkettet die Feature-Werte für unterstützte Bedingungen. Weitere Informationen finden Sie unter Condition
-
Ein Kontextausdruck, der zu einer ausgewertet wirdBooleschWert. Wenn der ausgewertete Wert true ist, fügt IDT die Funktion dem Testbericht hinzu, nachdem die Testsuite ausgeführt wurde. Wenn der ausgewertete Wert false ist, ist der Test nicht im Bericht enthalten.
Tests
-
Optional. Die Liste der Testdeskriptoren. Alle Tests, die in dieser Liste angegeben sind, müssen bestehen, damit das Feature unterstützt wird.
Jeder Testdeskriptor in dieser Liste verwendet die Testgruppen-ID und eine oder mehrere Testfall-IDs, um die einzelnen Tests 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
] # optionalSie müssen entweder angeben
Tests
oderOneOfTests
für jedes Feature imFeatures
-Liste. OneOfTests
-
Optional. Die Liste der Testdeskriptoren. Mindestens einer der in dieser Liste angegebenen Tests muss bestehen, damit das Feature unterstützt wird.
Jeder Testdeskriptor in dieser Liste verwendet die Testgruppen-ID und eine oder mehrere Testfall-IDs, um die einzelnen Tests 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
] # optionalSie müssen entweder angeben
Tests
oderOneOfTests
für jedes Feature imFeatures
-Liste. IsRequired
-
Der boolesche Wert, der definiert, ob das Feature im Testbericht erforderlich ist. Der Standardwert ist
false
.
Testen von Orchestrierung
Der Test Orchestrator-Kontext ist ein schreibgeschütztes JSON-Dokument, das Daten enthält, die dem Testorchestrator während der Ausführung zur Verfügung stehen. Der Test Orchestrator-Kontext ist nur vom Testorchestrator aus zugänglich und enthält Informationen, die den Testfluss bestimmen. Beispielsweise können Sie Informationen verwenden, die von Testläufern konfiguriert wurden, imuserdata.json
-Datei, um festzustellen, ob ein bestimmter Test ausgeführt werden muss.
Der Test Orchestrierkontext 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
file. userData
-
-Informationen im
userdata.json
file. config
-
-Informationen im
config.json
file.
Sie können den Kontext mit der JsonPath-Notation abfragen. Die Syntax für JsonPath-Abfragen in Statusdefinitionen lautet{{
aus. Wenn Sie auf Daten aus dem Testorchestrator-Kontext zugreifen, stellen Sie sicher, dass jeder Wert zu einer Zeichenfolge, einer Zahl oder einemBooleschaus.query
}}
Weitere Informationen zur Verwendung von JSONPath-Notation für den Zugriff auf Daten aus dem Kontext finden Sie unterVerwenden Sie den IDT-Kontextaus.