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.
Configuration de l'IDTorchestrateur de test
À partir de la IDT version 4.5.2, IDT inclut un nouveau composant d'orchestrateur de test. L'orchestrateur de tests est un IDT composant qui contrôle le flux d'exécution de la suite de tests et génère le rapport de test une fois IDT tous les tests terminés. L'orchestrateur de tests 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, elle IDT générera un orchestrateur de tests pour vous.
L'orchestrateur de test par défaut exécute les fonctions suivantes :
-
Permet aux testeurs de sélectionner et d'exécuter des groupes de tests spécifiques, au lieu de recourir à la suite de tests complète.
-
Si aucun groupe de test spécifique n'est sélectionné, exécute chaque groupe de test de la suite de tests dans un ordre aléatoire.
-
Génère des rapports et imprime un résumé de console présentant les résultats des tests pour chaque groupe de test et chaque cas de test.
L'orchestrateur de test remplace la machine à IDT états. Nous vous recommandons vivement d'utiliser l'orchestrateur de tests pour développer vos suites de tests plutôt que la machine à IDT états. L'orchestrateur de test fournit les fonctionnalités améliorées suivantes :
-
Utilise un format déclaratif par rapport au format impératif utilisé par la machine à IDT états. Cela vous permet de spécifier les tests que vous souhaitez exécuter et le moment où vous souhaitez les exécuter.
-
Gère la gestion de groupes spécifiques, la génération de rapports, la gestion des erreurs et le suivi des résultats afin que vous n'ayez pas à gérer manuellement ces actions.
-
Utilise le YAML format qui prend en charge les commentaires par défaut.
-
Nécessite 80 % d'espace disque en moins que l'orchestrateur de test pour définir le même flux de travail.
-
Ajoute une validation préalable pour vérifier que la définition de votre flux de travail ne contient pas de tests IDs ou de dépendances circulaires incorrects.
Tester le format de l'orchestrateur
Vous pouvez utiliser le modèle suivant pour configurer votre propre
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. Chaînes définies par l'utilisateur qui correspondent à des expressions de contexte. Les alias vous permettent de générer des noms conviviaux pour identifier les expressions contextuelles dans la configuration de votre orchestrateur de test. Cela est particulièrement utile si vous créez des expressions contextuelles complexes ou des expressions que vous utilisez à plusieurs endroits.
Vous pouvez utiliser des expressions contextuelles pour stocker des requêtes contextuelles qui vous permettent d'accéder aux données d'autres IDT configurations. Pour de plus amples informations, veuillez consulter 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. Une liste de conditions et les cas de test correspondants qui sont exécutés lorsque chaque condition est satisfaite. Chaque condition peut comporter plusieurs scénarios de test ; toutefois, vous ne pouvez attribuer un scénario de test donné qu'à une seule condition.
Par défaut, IDT exécute tout scénario 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 élément de la
ConditionalTests
liste inclut les paramètres suivants :Condition
-
Expression de contexte qui correspond à une valeur booléenne. 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'identifiant du groupe de test et un ou plusieurs cas de test IDs 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 telles
Aliases
.ConditionalTests: - Condition: "{{$aliases.Condition1}}" Tests: - GroupId: A - GroupId: B - Condition: "{{$aliases.Condition2}}" Tests: - GroupId: D - Condition: "{{$aliases.Condition1}} || {{$aliases.Condition2}}" Tests: - GroupId: C
Sur la base des conditions définies, IDT sélectionne les groupes de test comme suit :
-
Si
Condition1
c'est vrai, IDT exécute les tests dans les groupes de tests A, B et C. -
Si
Condition2
c'est vrai, IDT exécute les tests dans les groupes de test C et D.
Order
-
Facultatif. Ordre dans lequel les tests doivent être exécutés. Vous spécifiez l'ordre des tests 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. La valeur de
Order
est une liste de listes de descripteurs de groupes. Tout groupe de test non répertorié peut être exécuté enOrder
parallèle avec n'importe quel autre groupe de test répertorié.Chaque liste de descripteurs de groupe contient un ou plusieurs 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 :
-
: l'ID de groupe d'un groupe de test existant.group-id
-
[
—Liste des groupes de tests qui peuvent être exécutés dans n'importe quel ordre les uns par rapport aux autres.group-id
,group-id
] -
"*"
—Wildcard. Cela équivaut à la liste de tous les groupes de test qui ne sont pas déjà spécifiés dans la liste actuelle des descripteurs de groupes.
La valeur pour
Order
doit également répondre aux exigences suivantes :-
Le groupe de test IDs que vous spécifiez dans un descripteur de groupe doit exister dans votre suite de tests.
-
Chaque liste de descripteurs de groupes doit inclure au moins un groupe de test.
-
Chaque liste de descripteurs de groupes doit contenir un groupe IDs unique. Vous ne pouvez pas répéter un identifiant de groupe de test dans des descripteurs de groupe individuels.
-
Une liste de descripteurs de groupes 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.
Exemple
Pour une suite de tests contenant les groupes de tests A, B, C, D et E, la liste d'exemples suivante montre différentes manières de spécifier qui IDT doit d'abord exécuter le groupe de tests A, puis le groupe de tests B, puis les groupes de tests 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. Liste des fonctionnalités du produit que vous IDT souhaitez ajouter au
awsiotdevicetester_report.xml
fichier. Si vous ne spécifiez pas cette section, IDT vous n'ajouterez aucune fonctionnalité du produit au rapport.Les fonctionnalités d'un produit sont des informations définies par l'utilisateur concernant des critères spécifiques auxquels un appareil peut répondre. Par exemple, la fonctionnalité MQTT du produit peut indiquer que l'appareil publie correctement MQTT les messages. Dans
awsiotdevicetester_report.xml
, les fonctionnalités du produit sont définies sous la forme desupported
not-supported
, ou d'une valeur personnalisée définie par l'utilisateur, selon que les tests spécifiés ont été réussis ou non.Chaque élément de la
Features
liste comprend les paramètres suivants :Name
-
Le nom de la fonctionnalité.
Value
-
Facultatif. La valeur personnalisée que vous souhaitez utiliser dans le rapport à la place de
supported
. Si cette valeur n'est pas spécifiée, la fonction based IDT définit la valeur de fonction sursupported
ounot-supported
en fonction des résultats des tests. Si vous testez la même fonctionnalité dans des conditions différentes, vous pouvez utiliser une valeur personnalisée pour chaque instance de cette fonctionnalité dans laFeatures
liste et IDT concaténer les valeurs des entités pour les conditions prises en charge. Pour plus d'informations, veuillez consulter la rubrique Condition
-
Expression de contexte qui correspond à une valeur booléenne. Si la valeur évaluée est vraie, IDT ajoute la fonctionnalité au rapport de test une fois l'exécution de la suite de tests terminée. 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 cas de test IDs 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 l'une
Tests
ou l'autre des fonctionnalités de laFeatures
liste ouOneOfTests
pour chacune d'entre elles. OneOfTests
-
Facultatif. La liste des descripteurs de test. Au moins l'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 cas de test IDs 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 l'une
Tests
ou l'autre des fonctionnalités de laFeatures
liste ouOneOfTests
pour chacune d'entre elles. IsRequired
-
La 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 JSON document en lecture seule qui contient les données mises à la disposition de l'orchestrateur de test pendant l'exécution. Le contexte de l'orchestrateur de test est accessible uniquement depuis 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 testeurs dans le userdata.json
fichier pour déterminer si un test spécifique est requis pour être exécuté.
Le contexte de l'orchestrateur de test 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
fichier. userData
-
Informations contenues dans le
userdata.json
fichier. config
-
Informations contenues dans le
config.json
fichier.
Vous pouvez interroger le contexte à l'aide de la JSONPath notation. La syntaxe des JSONPath requêtes dans les définitions d'état est{{
. Lorsque vous accédez aux données depuis le contexte de l'orchestrateur de test, assurez-vous que chaque valeur correspond à une chaîne, un nombre ou un booléen.query
}}
Pour plus d'informations sur l'utilisation de la JSONPath notation pour accéder aux données depuis le contexte, consultezUtiliser le IDT contexte.