AWS IoT Greengrass Version 1 est entré dans la phase de durée de vie prolongée le 30 juin 2023. Pour plus d'informations, consultez la politique de AWS IoT Greengrass V1 maintenance. Après cette date, AWS IoT Greengrass V1 ne publiera pas de mises à jour fournissant des fonctionnalités, des améliorations, des corrections de bogues ou des correctifs de sécurité. Les appareils qui fonctionnent AWS IoT Greengrass V1 sous tension ne seront pas perturbés et continueront à fonctionner et à se connecter au cloud. Nous vous recommandons vivement de migrer vers AWS IoT Greengrass Version 2, qui ajoute de nouvelles fonctionnalités importantes et prend en charge des plateformes supplémentaires.
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.
Création de fichiers de configuration de suite de tests IDT
Cette section décrit les formats dans lesquels vous créez des fichiers de configuration JSON que vous incluez lorsque vous écrivez une suite de tests personnalisée.
Fichiers JSON requis
suite.json
-
Contient des informations à propos de la suite de tests. Consultez Configurer suite.json.
group.json
-
Contient des informations à propos d'un groupe de tests. Vous devez créer un outil
group.json
pour chaque groupe de tests de votre suite de tests. Consultez Configurer group.json. test.json
-
Contient des informations à propos d'un scénario de test. Vous devez créer un outil
test.json
pour chaque cas de test de votre suite de tests. Consultez Configurer test.json.
Fichiers JSON en option
state_machine.json
-
Définit comment les tests sont exécutés lorsque IDT exécute la suite de tests. Consultez Configurer state_machine.json.
userdata_schema.json
-
Définit le schéma pour leuserdata.jsonfichierque les coureurs de test peuvent inclure dans leur configuration de réglage. Le
userdata.json
est utilisé pour toutes les informations de configuration supplémentaires nécessaires à l'exécution du test, mais qui n'est pas présent dans ledevice.json
dans le fichier. Consultez Configurer userdata_schema.json.
Les fichiers de configuration JSON sont placés dans votre
comme illustré ici.<custom-test-suite-folder>
<custom-test-suite-folder>
└── suite ├── suite.json ├── state_machine.json ├── userdata_schema.json ├──<test-group-folder>
├── group.json ├──<test-case-folder>
└── test.json
Configurer suite.json
Lesuite.json
file définit les variables d'environnement et détermine si les données utilisateur sont requises pour exécuter la suite de tests. Utilisez le modèle suivant pour configurer votre outil
dans le fichier: <custom-test-suite-folder>
/suite/suite.json
{ "id": "
<suite-name>_<suite-version>
", "title": "<suite-title>
", "details": "<suite-details>
", "userDataRequired": true | false, "environmentVariables": [ { "key": "<name>
", "value": "<value>
", }, ... { "key": "<name>
", "value": "<value>
", } ] }
Tous les champs qui contiennent des valeurs sont requis, comme indiqué ici :
id
-
ID unique défini par l'utilisateur pour la suite de tests. Pour
id
doit correspondre au nom du dossier de suite de tests dans lequel le dossier de la suite de testssuite.json
se trouve dans le fichier. Le nom de la suite et la version de suite doivent également respecter les critères suivants :-
ne peut contenir de traits de soulignement.<suite-name>
-
est indiqué comme suit :<suite-version>
, oùx.x.x
x
est un nombre.
L'ID est affiché dans les rapports de test générés par IDT.
-
title
-
Nom défini par l'utilisateur pour le produit ou la fonctionnalité testé par cette suite de tests. Le nom est affiché dans l'interface de ligne de commande IDT pour les coureurs de test.
details
-
Description succincte de l'objectif de la suite de tests.
userDataRequired
-
Définit si les exécuteurs de tests doivent inclure des informations personnalisées dans un
userdata.json
dans le fichier. Si vous définissez cette valeur surtrue
, vous devez également inclure leuserdata_schema.jsonfichierdans le dossier de votre suite de tests. environmentVariables
-
Facultatif. Tableau des variables d'environnement à définir pour cette suite de tests.
environmentVariables.key
-
Nom de la variable d'environnement.
environmentVariables.value
-
Valeur de la variable d'environnement.
Configurer group.json
Legroup.json
définit si un groupe de tests est obligatoire ou facultatif. Utilisez le modèle suivant pour configurer votre outil
dans le fichier: <custom-test-suite-folder>
/suite/<test-group>
/group.json
{ "id": "
<group-id>
", "title": "<group-title>
", "details": "<group-details>
", "optional": true | false, }
Tous les champs qui contiennent des valeurs sont requis, comme indiqué ici :
id
-
Identifiant unique défini par l'utilisateur pour le groupe de test. Pour
id
doit correspondre au nom du dossier de groupe de tests dans lequel le dossier de groupe de testsgroup.json
est situé et ne doit pas comporter de traits de soulignement (_
). L'ID est utilisé dans les rapports de test générés par IDT. title
-
Nom descriptif du groupe de test. Le nom est affiché dans l'interface de ligne de commande IDT pour les coureurs de test.
details
-
Description succincte de l'objectif du groupe de tests.
optional
-
Facultatif. Définissez sur
true
pour afficher ce groupe de tests en tant que groupe facultatif une fois qu'IDT a terminé l'exécution des tests requis. La valeur par défaut estfalse
.
Configurer test.json
Letest.json
détermine les exécutables de cas de test et les variables d'environnement utilisées par un cas de test. Pour plus d'informations sur la création d'exécutables de scénario de test, consultezCréer des exécutables de cas de test IDT.
Utilisez le modèle suivant pour configurer votre outil
dans le fichier: <custom-test-suite-folder>
/suite/<test-group>
/<test-case>
/test.json
{ "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>
", } ] }
Tous les champs qui contiennent des valeurs sont requis, comme indiqué ici :
id
-
Un identifiant unique défini par l'utilisateur pour le cas de test. Pour
id
doit correspondre au nom du dossier de scénario de test dans lequel le dossier de testtest.json
est situé et ne doit pas comporter de traits de soulignement (_
). L'ID est utilisé dans les rapports de test générés par IDT. title
-
Nom descriptif pour le scénario de test. Le nom est affiché dans l'interface de ligne de commande IDT pour les coureurs de test.
details
-
Description succincte de l'objectif du scénario de test.
requireDUT
-
Facultatif. Définissez sur
true
si un appareil est requis pour exécuter ce test, sinon réglé surfalse
. La valeur par défaut esttrue
. Les coureurs de test vont configurer les appareils qu'ils utiliseront pour exécuter le test dans leurdevice.json
dans le fichier. requiredResources
-
Facultatif. Une baie qui fournit des informations sur les périphériques de ressources nécessaires à l'exécution de ce test.
requiredResources.name
-
Nom unique à attribuer au périphérique de ressources lorsque ce test est en cours d'exécution.
requiredResources.features
-
Un ensemble de fonctionnalités de périphériques de ressources définies par l'utilisateur.
requiredResources.features.name
-
Nom de la fonction. Fonctionnalité de l'appareil pour laquelle vous souhaitez utiliser cet appareil. Ce nom est comparé au nom de la fonction fourni par le lanceur de test dans le
resource.json
dans le fichier. requiredResources.features.version
-
Facultatif. La version de la fonctionnalité. Cette valeur est comparée à la version de fonctionnalité fournie par le lanceur de test dans le
resource.json
dans le fichier. Si aucune version n'est fournie, la fonctionnalité n'est pas cochée. Si aucun numéro de version n'est requis pour l'entité, laissez ce champ vide. requiredResources.features.jobSlots
-
Facultatif. Nombre de tests simultanés que cette fonctionnalité peut prendre en charge. La valeur par défaut est
1
. Si vous souhaitez qu'IDT utilise des appareils distincts pour des fonctions individuelles, nous vous recommandons de définir cette valeur sur1
.
execution.timeout
-
Temps (en millisecondes) pendant lequel IDT attend la fin de l'exécution du test. Pour plus d'informations sur la définition de cette valeur, consultezCréer des exécutables de cas de test IDT.
execution.
os
-
Les exécutables de cas de test à exécuter en fonction du système d'exploitation de l'ordinateur hôte qui exécute IDT. Les valeurs prises en charge sont
linux
,mac
etwin
.execution.
os
.cmd-
Chemin d'accès à l'exécutable du cas de test que vous souhaitez exécuter pour le système d'exploitation spécifié. Cet emplacement doit se trouver dans le chemin système.
execution.
os
.args-
Facultatif. Les arguments à fournir pour exécuter l'exécutable du cas de test.
environmentVariables
-
Facultatif. Tableau des variables d'environnement défini pour ce scénario de test.
environmentVariables.key
-
Nom de la variable d'environnement.
environmentVariables.value
-
Valeur de la variable d'environnement.
Note
Si vous spécifiez la même variable d'environnement dans le
test.json
et dans le fichiersuite.json
, la valeur du fichiertest.json
est prioritaire.
Configurer state_machine.json
Une machine à états est une construction qui contrôle le flux d'exécution de la suite de tests. Il détermine l'état de départ d'une suite de tests, gère les transitions d'état en fonction de règles définies par l'utilisateur et continue de passer par ces états jusqu'à ce qu'il atteigne l'état final.
Si votre suite de tests n'inclut pas de machine à états définie par l'utilisateur, IDT générera une machine d'état pour vous. La machine d'état 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.
Pour plus d'informations sur le fonctionnement de la machine d'état IDT, consultezConfigurer la machine d'état IDT.
Configurer userdata_schema.json
Leuserdata_schema.json
détermine le schéma dans lequel les exécuteurs de test fournissent des données utilisateur. Les données utilisateur sont requises si votre suite de tests nécessite des informations qui ne sont pas présentes dans ledevice.json
dans le fichier. Par exemple, vos tests peuvent nécessiter des informations d'identification réseau Wi-Fi, des ports ouverts spécifiques ou des certificats qu'un utilisateur doit fournir. Ces informations peuvent être fournies à IDT sous la forme d'un paramètre d'entrée appeléuserdata
, la valeur pour laquelle est unuserdata.json
, que les utilisateurs créent dans leur
folder. Le format de l'outil<device-tester-extract-location>
/configuserdata.json
est basé sur le fichieruserdata_schema.json
fichier que vous incluez dans la suite de tests.
Pour indiquer que les coureurs d'essai doivent fournir unuserdata.json
dans le fichier:
-
Dans
suite.json
Fichier, ensembleuserDataRequired
pourtrue
. -
Dans vos produits
, créez un<custom-test-suite-folder>
userdata_schema.json
dans le fichier. -
Modification du contenu
userdata_schema.json
fichier pour créer un fichier valideSchéma JSON version préliminaire de l'IETF v4.
Lorsque IDT exécute votre suite de tests, il lit automatiquement le schéma et l'utilise pour valider lauserdata.json
fichier fourni par le lanceur de test. S'il est valide, le contenu duuserdata.json
sont disponibles dans les deuxContexte IDTet dans leContexte de machine d'état.