Configuration des paramètres pour les testeurs - AWS IoT Greengrass

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 des paramètres pour les testeurs

Pour exécuter des suites de tests personnalisées, les testeurs doivent configurer leurs paramètres en fonction de la suite de tests qu'ils souhaitent exécuter. Les paramètres sont spécifiés en fonction des modèles de fichiers de configuration situés dans le <device-tester-extract-location>/configs/ dossier. Si nécessaire, les testeurs doivent également configurer des AWS informations d'identification qu'IDT utilisera pour se connecter au AWS cloud.

En tant que rédacteur de tests, vous devrez configurer ces fichiers pour déboguer votre suite de tests. Vous devez fournir des instructions aux testeurs afin qu'ils puissent configurer les paramètres suivants selon les besoins pour exécuter vos suites de tests.

Configurer device.json

Le device.json fichier contient des informations sur les appareils sur lesquels les tests sont exécutés (par exemple, adresse IP, informations de connexion, système d'exploitation et architecture du processeur).

Les testeurs peuvent fournir ces informations à l'aide du device.json fichier modèle suivant situé dans le <device-tester-extract-location>/configs/ dossier.

[ { "id": "<pool-id>", "sku": "<pool-sku>", "features": [ { "name": "<feature-name>", "value": "<feature-value>", "configs": [ { "name": "<config-name>", "value": "<config-value>" } ], } ], "devices": [ { "id": "<device-id>", "connectivity": { "protocol": "ssh | uart | docker", // ssh "ip": "<ip-address>", "port": <port-number>, "auth": { "method": "pki | password", "credentials": { "user": "<user-name>", // pki "privKeyPath": "/path/to/private/key", // password "password": "<password>", } }, // uart "serialPort": "<serial-port>", // docker "containerId": "<container-id>", "containerUser": "<container-user-name>", } } ] } ]

Tous les champs qui contiennent des valeurs sont requis, comme indiqué ici :

id

ID alphanumérique défini par l'utilisateur qui identifie de façon unique un ensemble d'appareils appelé un groupe d'appareils. Le matériel doit être identique pour les appareils d'un même groupe. Lorsque vous exécutez une suite de tests, les appareils du groupe sont utilisés pour paralléliser la charge de travail. Plusieurs appareils sont utilisés pour exécuter différents tests.

sku

Valeur alphanumérique qui identifie de façon unique l'appareil que vous testez. Le SKU est utilisé pour suivre les appareils qualifiés.

Note

Si vous souhaitez ajouter votre carte dans le catalogue d'appareils AWS Partner, la référence que vous indiquez ici doit correspondre à celle indiquée pendant le processus d'élaboration de la liste.

features

Facultatif. Un tableau contenant les fonctions prises en charge de l'appareil. Les fonctionnalités de l'appareil sont des valeurs définies par l'utilisateur que vous configurez dans votre suite de tests. Vous devez fournir à vos testeurs des informations sur les noms et les valeurs des fonctionnalités à inclure dans le device.json fichier. Par exemple, si vous souhaitez tester un périphérique qui fonctionne comme un serveur MQTT pour d'autres appareils, vous pouvez configurer votre logique de test pour valider les niveaux pris en charge spécifiques pour une fonctionnalité nomméeMQTT_QOS. Les testeurs fournissent le nom de cette fonctionnalité et définissent la valeur de la fonctionnalité en fonction des niveaux de QOS pris en charge par leur appareil. Vous pouvez récupérer les informations fournies depuis le contexte IDT avec la devicePool.features requête ou depuis le contexte de l'orchestrateur de test avec la pool.features requête.

features.name

Nom de la fonctionnalité.

features.value

Les valeurs des fonctionnalités prises en charge.

features.configs

Paramètres de configuration, si nécessaire, pour la fonctionnalité.

features.config.name

Nom du paramètre de configuration.

features.config.value

Les valeurs de réglage prises en charge.

devices

Un ensemble d'appareils du pool à tester. Au moins un appareil est requis.

devices.id

Un identificateur unique défini par l'utilisateur pour l'appareil testé.

connectivity.protocol

Le protocole de communication utilisé pour communiquer avec cet appareil. Chaque appareil d'un pool doit utiliser le même protocole.

Actuellement, les seules valeurs prises en charge sont ssh et uart pour les appareils physiques, ainsi que docker pour les conteneurs Docker.

connectivity.ip

L'adresse IP de l'appareil testé.

Cette propriété s'applique uniquement si connectivity.protocol est défini sur ssh.

connectivity.port

Facultatif. Le numéro de port à utiliser pour les connexions SSH.

La valeur par défaut est 22.

Cette propriété s'applique uniquement si connectivity.protocol est défini sur ssh.

connectivity.auth

Informations d'authentification pour la connexion.

Cette propriété s'applique uniquement si connectivity.protocol est défini sur ssh.

connectivity.auth.method

Méthode d'authentification utilisée pour accéder à un appareil sur le protocole de connectivité donné.

Les valeurs prises en charge sont :

  • pki

  • password

connectivity.auth.credentials

Informations d'identification utilisées pour l'authentification.

connectivity.auth.credentials.password

Mot de passe utilisé pour se connecter à l'appareil à tester.

Cette valeur s'applique uniquement si connectivity.auth.method est défini sur password.

connectivity.auth.credentials.privKeyPath

Chemin complet de la clé privée utilisée pour se connecter à l'appareil testé.

Cette valeur s'applique uniquement si connectivity.auth.method est défini sur pki.

connectivity.auth.credentials.user

Nom d'utilisateur pour la connexion à l'appareil testé.

connectivity.serialPort

Facultatif. Port série auquel le périphérique est connecté.

Cette propriété s'applique uniquement si connectivity.protocol est défini sur uart.

connectivity.containerId

ID de conteneur ou nom du conteneur Docker en cours de test.

Cette propriété s'applique uniquement si connectivity.protocol est défini sur ssh.

connectivity.containerUser

Facultatif. Le nom de l'utilisateur à l'intérieur du conteneur. La valeur par défaut est l'utilisateur indiqué dans le Dockerfile.

La valeur par défaut est 22.

Cette propriété s'applique uniquement si connectivity.protocol est défini sur ssh.

Note

Pour vérifier si les testeurs configurent la mauvaise connexion aux appareils pour un test, vous pouvez la récupérer dans le contexte pool.Devices[0].Connectivity.Protocol de l'orchestrateur de test et la comparer à la valeur attendue dans un Choice état. Si un protocole incorrect est utilisé, imprimez un message en utilisant l'LogMessageétat et passez à l'Failétat.

Vous pouvez également utiliser un code de gestion des erreurs pour signaler un échec de test pour des types de périphériques incorrects.

(Facultatif) Configurer userdata.json

Le userdata.json fichier contient toutes les informations supplémentaires requises par une suite de tests mais qui ne sont pas spécifiées dans le device.json fichier. Le format de ce fichier dépend du userdata_scheme.jsonfichier défini dans la suite de tests. Si vous êtes rédacteur de tests, assurez-vous de fournir ces informations aux utilisateurs qui exécuteront les suites de tests que vous écrivez.

(Facultatif) Configurer resource.json

Le resource.json fichier contient des informations sur les périphériques qui seront utilisés comme périphériques de ressources. Les périphériques ressources sont des appareils nécessaires pour tester certaines fonctionnalités d'un périphérique testé. Par exemple, pour tester la capacité Bluetooth d'un appareil, vous pouvez utiliser un périphérique ressource pour vérifier si votre appareil peut s'y connecter correctement. Les périphériques de ressources sont facultatifs et vous pouvez avoir besoin d'autant de périphériques de ressources que nécessaire. En tant que rédacteur de test, vous utilisez le fichier test.json pour définir les fonctionnalités du périphérique de ressources requises pour un test. Les testeurs utilisent ensuite le resource.json fichier pour fournir un pool de périphériques de ressources dotés des fonctionnalités requises. Assurez-vous de fournir ces informations aux utilisateurs qui exécuteront les suites de tests que vous écrivez.

Les testeurs peuvent fournir ces informations à l'aide du resource.json fichier modèle suivant situé dans le <device-tester-extract-location>/configs/ dossier.

[ { "id": "<pool-id>", "features": [ { "name": "<feature-name>", "version": "<feature-version>", "jobSlots": <job-slots> } ], "devices": [ { "id": "<device-id>", "connectivity": { "protocol": "ssh | uart | docker", // ssh "ip": "<ip-address>", "port": <port-number>, "auth": { "method": "pki | password", "credentials": { "user": "<user-name>", // pki "privKeyPath": "/path/to/private/key", // password "password": "<password>", } }, // uart "serialPort": "<serial-port>", // docker "containerId": "<container-id>", "containerUser": "<container-user-name>", } } ] } ]

Tous les champs qui contiennent des valeurs sont requis, comme indiqué ici :

id

ID alphanumérique défini par l'utilisateur qui identifie de façon unique un ensemble d'appareils appelé un groupe d'appareils. Le matériel doit être identique pour les appareils d'un même groupe. Lorsque vous exécutez une suite de tests, les appareils du groupe sont utilisés pour paralléliser la charge de travail. Plusieurs appareils sont utilisés pour exécuter différents tests.

features

Facultatif. Un tableau contenant les fonctions prises en charge de l'appareil. Les informations requises dans ce champ sont définies dans les fichiers test.json de la suite de tests et déterminent les tests à exécuter et la manière de les exécuter. Si la suite de tests ne nécessite aucune fonctionnalité, ce champ n'est pas obligatoire.

features.name

Nom de la fonctionnalité.

features.version

La version fonctionnelle.

features.jobSlots

Paramètre pour indiquer le nombre de tests pouvant utiliser simultanément l'appareil. La valeur par défaut est 1.

devices

Un ensemble d'appareils du pool à tester. Au moins un appareil est requis.

devices.id

Un identificateur unique défini par l'utilisateur pour l'appareil testé.

connectivity.protocol

Le protocole de communication utilisé pour communiquer avec cet appareil. Chaque appareil d'un pool doit utiliser le même protocole.

Actuellement, les seules valeurs prises en charge sont ssh et uart pour les appareils physiques, ainsi que docker pour les conteneurs Docker.

connectivity.ip

L'adresse IP de l'appareil testé.

Cette propriété s'applique uniquement si connectivity.protocol est défini sur ssh.

connectivity.port

Facultatif. Le numéro de port à utiliser pour les connexions SSH.

La valeur par défaut est 22.

Cette propriété s'applique uniquement si connectivity.protocol est défini sur ssh.

connectivity.auth

Informations d'authentification pour la connexion.

Cette propriété s'applique uniquement si connectivity.protocol est défini sur ssh.

connectivity.auth.method

Méthode d'authentification utilisée pour accéder à un appareil sur le protocole de connectivité donné.

Les valeurs prises en charge sont :

  • pki

  • password

connectivity.auth.credentials

Informations d'identification utilisées pour l'authentification.

connectivity.auth.credentials.password

Mot de passe utilisé pour se connecter à l'appareil à tester.

Cette valeur s'applique uniquement si connectivity.auth.method est défini sur password.

connectivity.auth.credentials.privKeyPath

Chemin complet de la clé privée utilisée pour se connecter à l'appareil testé.

Cette valeur s'applique uniquement si connectivity.auth.method est défini sur pki.

connectivity.auth.credentials.user

Nom d'utilisateur pour la connexion à l'appareil testé.

connectivity.serialPort

Facultatif. Port série auquel le périphérique est connecté.

Cette propriété s'applique uniquement si connectivity.protocol est défini sur uart.

connectivity.containerId

ID de conteneur ou nom du conteneur Docker en cours de test.

Cette propriété s'applique uniquement si connectivity.protocol est défini sur ssh.

connectivity.containerUser

Facultatif. Le nom de l'utilisateur à l'intérieur du conteneur. La valeur par défaut est l'utilisateur indiqué dans le Dockerfile.

La valeur par défaut est 22.

Cette propriété s'applique uniquement si connectivity.protocol est défini sur ssh.

(Facultatif) Configurer config.json

Le config.json fichier contient des informations de configuration pour IDT. Généralement, les testeurs n'ont pas besoin de modifier ce fichier, sauf pour fournir leurs informations AWS d'identification utilisateur pour IDT et, éventuellement, pour une AWS région. Si des AWS informations d'identification avec les autorisations requises sont fournies, AWS IoT Device Tester collecte et soumet les statistiques d'utilisation àAWS. Il s'agit d'une fonctionnalité opt-in utilisée pour améliorer la fonctionnalité IDT. Pour plus d’informations, consultez Métriques d'utilisation IDT.

Les testeurs peuvent configurer leurs AWS informations d'identification de l'une des manières suivantes :

  • Fichier d'informations d'identification

    IDT utilise le même fichier d'informations d'identification que l'AWS CLI. Pour de plus amples informations, veuillez consulter Fichiers de configuration et d'informations d'identification.

    L'emplacement du fichier d'informations d'identification varie en fonction du système d'exploitation que vous utilisez :

    • macOS, Linux : ~/.aws/credentials

    • Windows: C:\Users\UserName\.aws\credentials

  • Variables d'environnement

    Les variables d'environnement sont des variables gérées par le système d'exploitation et utilisées par les commandes du système. Les variables définies au cours d'une session SSH ne sont pas disponibles après la fermeture de cette session. IDT peut utiliser les variables d'AWS_SECRET_ACCESS_KEYenvironnement AWS_ACCESS_KEY_ID et pour stocker les informations d'identification AWS

    Pour définir ces variables sous Linux, macOS ou Unix, utilisez export:

    export AWS_ACCESS_KEY_ID=<your_access_key_id> export AWS_SECRET_ACCESS_KEY=<your_secret_access_key>

    Pour définir ces variables sous Windows, utilisez set :

    set AWS_ACCESS_KEY_ID=<your_access_key_id> set AWS_SECRET_ACCESS_KEY=<your_secret_access_key>

Pour configurer les AWS informations d'identification pour IDT, les testeurs modifient la auth section du config.json fichier situé dans le <device-tester-extract-location>/configs/ dossier.

{ "log": { "location": "logs" }, "configFiles": { "root": "configs", "device": "configs/device.json" }, "testPath": "tests", "reportPath": "results", "awsRegion": "<region>", "auth": { "method": "file | environment", "credentials": { "profile": "<profile-name>" } } } ]

Tous les champs qui contiennent des valeurs sont requis, comme indiqué ici :

Note

Tous les chemins de ce fichier sont définis par rapport au < device-tester-extract-location >.

log.location

Le chemin d'accès au dossier des journaux dans le répertoire < device-tester-extract-location >.

configFiles.root

Le chemin d'accès au dossier contenant les fichiers de configuration.

configFiles.device

Le chemin d'accès au device.json fichier.

testPath

Le chemin d'accès au dossier contenant les suites de tests.

reportPath

Le chemin d'accès au dossier qui contiendra les résultats des tests une fois qu'IDT aura exécuté une suite de tests.

awsRegion

Facultatif. La AWS région que les suites de tests utiliseront. Si ce paramètre n'est pas défini, les suites de tests utiliseront la région par défaut spécifiée dans chaque suite de tests.

auth.method

Méthode utilisée par IDT pour récupérer les AWS informations d'identification. Les valeurs prises en charge sont file la récupération des informations d'identification à partir d'un fichier d'informations d'identification et la récupération environment des informations d'identification à l'aide de variables d'environnement.

auth.credentials.profile

Le profil d'informations d'identification à utiliser à partir du fichier d'informations d'identification. Cette propriété s'applique uniquement si auth.method est défini sur file.