Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Configurer l'orchestrateur de test IDT
À partir de IDT v4.5.1, IDT inclut un nouveauorchestrateur de testsComposant. L'orchestrateur de test est un composant IDT qui contrôle le flux d'exécution de la suite de tests et génère le rapport de test une fois qu'IDT a terminé l'exécution de tous les tests. L'orchestrateur de test détermine la sélection des tests et l'ordre dans lequel les tests sont exécutés en fonction des règles définies par l'utilisateur.
Si votre suite de tests n'inclut pas d'orchestrateur de test défini par l'utilisateur, IDT générera un orchestrateur de test pour vous.
L'orchestrateur de test par défaut remplit les fonctions suivantes :
-
Offre aux coureurs de tests la possibilité de sélectionner et d'exécuter des groupes de tests spécifiques, au lieu de toute la suite de tests.
-
Si des groupes de tests spécifiques ne sont pas sélectionnés, exécute tous les groupes de tests de la suite de tests dans un ordre aléatoire.
-
Génère des rapports et imprime un résumé de la console qui affiche les résultats des tests pour chaque groupe de test et chaque cas de test.
L'orchestrateur de test remplace l'orchestrateur de test IDT. Nous vous recommandons fortement d'utiliser l'orchestrateur de test pour développer vos suites de tests au lieu de l'orchestrateur de test IDT. L'orchestrateur de test offre les fonctionnalités améliorées suivantes :
-
Utilise un format déclaratif par rapport au format impératif utilisé par la machine d'état IDT. Ceci vous permet despécifierquels tests vous souhaitez exécuter etquandvous voulez les diriger.
-
Gère la gestion des groupes spécifiques, la génération de rapports, la gestion des erreurs et le suivi des résultatsde sorte que vous n'êtes pas requispour gérer manuellement ces actions.
-
Utilise le format YAML, qui prend en charge les commentaires par défaut.
-
Nécessite80 pour centmoins d'espace disque que l'orchestrateur de test pour définir le même flux de travail.
-
Ajoute une validation pré-test pour vérifier que la définition de votre flux de travail ne contient pas d'ID de test ou de dépendances circulaires incorrects.
Format de l'orchestrateur de test
Vous pouvez utiliser le modèle suivant pour configurer le vôtre
dans le fichier: <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
Tous les champs qui contiennent des valeurs sont requis, comme indiqué ici :
Aliases
-
Facultatif. Les chaînes définies par l'utilisateur qui correspondent à des expressions contextuelles. Les alias vous permettent de générer des noms conviviaux pouridentifiez les expressions contextuelles dans la configuration de votre orchestrateur de test. Ceci est particulièrement utile si vous créez des expressions de contexte ou d'expressions de contexte complexes que vous utilisez à plusieurs endroits.
Vous pouvez utiliser des expressions de contexte pour stocker des requêtes contextuelles qui vous permettent d'accéder aux données provenant d'autres configurations IDT. Pour plus d'informations, consultez Accédez aux données dans le contexte.
Exemple
Aliases: FizzChosen: "'{{$pool.features[?(@.name == 'Fizz')].value[0]}}' == 'yes'" BuzzChosen: "'{{$pool.features[?(@.name == 'Buzz')].value[0]}}' == 'yes'" FizzBuzzChosen: "'{{$aliases.FizzChosen}}' && '{{$aliases.BuzzChosen}}'"
ConditionalTests
-
Facultatif. Liste des conditions et des cas de test correspondants exécutés lorsque chaque condition est satisfaite. Chaque condition peut comporter plusieurs cas de test. Toutefois, vous ne pouvez attribuer un cas de test donné qu'à une seule condition.
Par défaut, IDT exécute tout cas de test qui n'est pas affecté à une condition de cette liste. Si vous ne spécifiez pas cette section, IDT exécute tous les groupes de tests de la suite de tests.
Chaque article du
ConditionalTests
comprend les paramètres suivants :Condition
-
Une expression de contexte qui correspond àBooléenValeur . Si la valeur évaluée est vraie, IDT exécute les scénarios de test spécifiés dans le
Tests
Paramètre . Tests
-
La liste des descripteurs de test.
Chaque descripteur de test utilise l'ID du groupe de test et un ou plusieurs ID de cas de test pour identifier les tests individuels à exécuter à partir d'un groupe de test spécifique. Le descripteur de test utilise le format suivant :
GroupId:
group-id
CaseIds: [test-id
,test-id
] # optional
Exemple
L'exemple suivant utilise des expressions contextuelles génériques que vous pouvez définir comme
Aliases
.ConditionalTests: - Condition: "{{$aliases.Condition1}}" Tests: - GroupId: A - GroupId: B - Condition: "{{$aliases.Condition2}}" Tests: - GroupId: D - Condition: "{{$aliases.Condition1}} || {{$aliases.Condition2}}" Tests: - GroupId: C
En fonction des conditions définies, IDT sélectionne les groupes de test comme suit :
-
Si
Condition1
est vrai, IDT exécute les tests dans les groupes de test A, B et C. -
Si
Condition2
est vrai, IDT exécute les tests dans les groupes de test C et D.
Order
-
Facultatif. Ordre que dans lequel effectuer les tests. Vous spécifiez l'ordre de test au niveau du groupe de test. Si vous ne spécifiez pas cette section, IDT exécute tous les groupes de test applicables dans un ordre aléatoire. Pour
Order
est une liste de listes de descripteurs de groupes. Tous les groupes de tests que vous ne répertoriez pas dansOrder
, peut être exécuté en parallel avec n'importe quel autre groupe de test répertorié.Chaque liste de descripteurs de groupe contient l'un des autres descripteurs de groupe et identifie l'ordre dans lequel exécuter les groupes spécifiés dans chaque descripteur. Vous pouvez utiliser les formats suivants pour définir des descripteurs de groupes individuels :
-
: ID de groupe d'un groupe de test existant.group-id
-
[
: liste des groupes de tests pouvant être exécutés dans n'importe quel ordre les uns par rapport aux autres.group-id
,group-id
] -
"*"
—Caractères génériques. Cela équivaut à la liste de tous les groupes de test qui ne sont pas déjà spécifiés dans la liste des descripteurs de groupes en cours.
La valeur de
Order
doit également répondre aux critères suivants :-
Les ID de groupe de test que vous spécifiez dans un descripteur de groupe doivent exister dans votre suite de tests.
-
Chaque liste de descripteurs de groupes doit inclure au moins un groupe de tests.
-
Chaque liste de descripteurs de groupe doit contenir des identifiants de groupe uniques. Vous ne pouvez pas répéter un ID de groupe de test dans des descripteurs de groupe individuels.
-
Une liste de descripteurs de groupe peut comporter au maximum un descripteur de groupe générique. Le descripteur de groupe générique doit être le premier ou le dernier élément de la liste.
Exemples
Pour une suite de tests contenant des groupes de tests A, B, C, D et E, la liste d'exemples suivante montre différentes manières de spécifier qu'IDT doit d'abord exécuter le groupe de test A, puis exécuter le groupe de test B, puis exécuter les groupes de test C, D et E dans n'importe quel ordre.
-
Order: - - A - B - [C, D, E]
-
Order: - - A - B - "*"
-
Order: - - A - B - - B - C - - B - D - - B - E
-
Features
-
Facultatif. La liste des fonctionnalités du produit que vous souhaitez qu'IDT ajoute au
awsiotdevicetester_report.xml
dans le fichier. Si vous ne spécifiez pas cette section, IDT n'ajoutera aucune fonctionnalité produit au rapport.Une fonctionnalité produit est constituée d'informations définies par l'utilisateur sur des critères spécifiques auxquels un appareil peut répondre. Par exemple, la fonctionnalité produit MQTT peut indiquer que l'appareil publie correctement les messages MQTT. Dans
awsiotdevicetester_report.xml
, les caractéristiques du produit sont définies commesupported
,not-supported
, ou une valeur personnalisée définie par l'utilisateur, selon que les tests spécifiés ont réussi ou non.Chaque article du
Features
comprend les paramètres suivants :Name
-
Nom de la fonction.
Value
-
Facultatif. Valeur personnalisée que vous souhaitez utiliser dans le rapport au lieu de
supported
. Si cette valeur n'est pas spécifiée, IDT basé définit la valeur de l'entité sursupported
ounot-supported
basé sur les résultats des tests. Si vous testez la même fonctionnalité avec des conditions différentes, vous pouvez utiliser une valeur personnalisée pour chaque instance de cette entité dans leFeatures
et IDT concaténe les valeurs des entités pour les conditions prises en charge. Pour de plus amples informations, veuillez consulter Condition
-
Une expression de contexte qui correspond àBooléenValeur . Si la valeur évaluée est vraie, IDT ajoute la fonction au rapport de test une fois qu'il a terminé l'exécution de la suite de tests. Si la valeur évaluée est fausse, le test n'est pas inclus dans le rapport.
Tests
-
Facultatif. La liste des descripteurs de test. Tous les tests spécifiés dans cette liste doivent réussir pour que la fonctionnalité soit prise en charge.
Chaque descripteur de test de cette liste utilise l'ID du groupe de test et un ou plusieurs ID de cas de test pour identifier les tests individuels à exécuter à partir d'un groupe de test spécifique. Le descripteur de test utilise le format suivant :
GroupId:
group-id
CaseIds: [test-id
,test-id
] # optionalVous devez spécifier ou
Tests
ouOneOfTests
pour chaque fonctionnalité de laFeatures
liste. OneOfTests
-
Facultatif. La liste des descripteurs de test. Au moins un des tests spécifiés dans cette liste doit réussir pour que la fonctionnalité soit prise en charge.
Chaque descripteur de test de cette liste utilise l'ID du groupe de test et un ou plusieurs ID de cas de test pour identifier les tests individuels à exécuter à partir d'un groupe de test spécifique. Le descripteur de test utilise le format suivant :
GroupId:
group-id
CaseIds: [test-id
,test-id
] # optionalVous devez spécifier ou
Tests
ouOneOfTests
pour chaque fonctionnalité de laFeatures
liste. IsRequired
-
Valeur booléenne qui définit si la fonctionnalité est requise dans le rapport de test. La valeur par défaut est
false
.
Contexte de l'orchestrateur de tests
Le contexte de l'orchestrateur de test est un document JSON en lecture seule qui contient des données disponibles pour l'orchestrateur de test pendant l'exécution. Le contexte de l'orchestrateur de test est accessible uniquement à partir de l'orchestrateur de test et contient des informations qui déterminent le flux de test. Par exemple, vous pouvez utiliser les informations configurées par les exécuteurs de tests dans leuserdata.json
pour déterminer si un test spécifique est nécessaire à l'exécution.
Le contexte de l'orchestrateur de tests utilise le format suivant :
{ "pool": {
<device-json-pool-element>
}, "userData": {<userdata-json-content>
}, "config": {<config-json-content>
} }
pool
-
Informations sur le pool de périphériques sélectionné pour le test. Pour un pool de périphériques sélectionné, ces informations sont extraites de l'élément de tableau de pool de périphériques de niveau supérieur correspondant défini dans le
device.json
dans le fichier. userData
-
Informations dans le
userdata.json
dans le fichier. config
-
Informations dans le
config.json
dans le fichier.
Vous pouvez interroger le contexte à l'aide de la notation JSONPath. La syntaxe des requêtes JSONPath dans les définitions d'état est{{
. Lorsque vous accédez à des données à partir du contexte de l'orchestrateur de test, assurez-vous que chaque valeur est évaluée en chaîne, en nombre ou en unBooléen.query
}}
Pour plus d'informations sur l'utilisation de la notation JSONPath pour accéder aux données du contexte, consultezUtiliser le contexte IDT.