Tutoriel : Utiliser un test de confiance issu de la suite de tests de confiance - 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.

Tutoriel : Utiliser un test de confiance issu de la suite de tests de confiance

AWS IoT GreengrassLe Testing Framework (GTF) et le Greengrass Development Kit (GDK) offrent aux développeurs des moyens d'exécuter des tests. end-to-end Vous pouvez suivre ce didacticiel pour initialiser un projet GDK avec un composant, initialiser un projet GDK avec un module de test et utiliser un end-to-end test de confiance issu de la suite de tests de confiance. Après avoir créé votre scénario de test personnalisé, vous pouvez exécuter le test.

Un test de confiance est un test générique fourni par Greengrass qui valide les comportements fondamentaux des composants. Ces tests peuvent être modifiés ou étendus pour répondre à des besoins de composants plus spécifiques.

Pour ce didacticiel, nous utiliserons un HelloWorld composant. Si vous utilisez un autre composant, remplacez-le par le HelloWorld vôtre.

Dans ce didacticiel, vous effectuez les opérations suivantes :

  1. Initialisez un projet GDK avec un composant.

  2. Initialisez un projet GDK avec un module de end-to-end test.

  3. Utilisez un test issu de la suite de tests de confiance.

  4. Ajoutez une étiquette au nouveau scénario de test.

  5. Créez le fichier JAR de test.

  6. Exécutez le test .

Prérequis

Pour suivre ce didacticiel, vous aurez besoin des éléments suivants :

  • GDK version 1.6.0 ou ultérieure

  • Java

  • Maven

  • Git

Étape 1 : Initialisation d'un projet GDK avec un composant

  • Initialisez un dossier vide avec un projet GDK. Téléchargez le HelloWorld composant implémenté en Python en exécutant la commande suivante.

    gdk component init -t HelloWorld -l python -n HelloWorld

    Cette commande crée un nouveau répertoire nommé HelloWorld dans le répertoire en cours.

Étape 2 : Initialisation d'un projet GDK avec un module de test end-to-end

  • GDK vous permet de télécharger le modèle du module de test composé d'une fonctionnalité et d'une implémentation par étapes. Exécutez la commande suivante pour ouvrir le HelloWorld répertoire et initialiser le projet GDK existant à l'aide d'un module de test.

    cd HelloWorld gdk test-e2e init

    Cette commande crée un nouveau répertoire nommé gg-e2e-tests dans le HelloWorld répertoire. Ce répertoire de test est un projet Maven qui dépend du JAR autonome de test Greengrass.

Étape 3 : Utiliser un test issu de la suite de tests de confiance

La rédaction d'un scénario de test de confiance consiste à utiliser le fichier de fonctionnalités fourni et, si nécessaire, à modifier les scénarios. Pour un exemple d'utilisation d'un test de confiance, voirExemple : création d'un scénario de test personnalisé. Pour utiliser un test de confiance, procédez comme suit :

  • Utilisez le fichier de fonctionnalités fourni.

    Accédez au gg-e2e-tests/src/main/resources/greengrass/features dossier dans le répertoire actuel. Ouvrez le confidenceTest.feature fichier d'exemple pour utiliser le test de confiance.

Étape 4 : ajouter un tag au nouveau scénario de test

  • Vous pouvez attribuer des balises aux fonctionnalités et aux scénarios afin d'organiser le processus de test. Vous pouvez utiliser des balises pour classer les sous-ensembles de scénarios et également sélectionner les hooks à exécuter de manière conditionnelle. Les fonctionnalités et les scénarios peuvent comporter plusieurs balises séparées par un espace.

    Dans cet exemple, nous utilisons le HelloWorld composant.

    Chaque scénario est étiqueté avec@ConfidenceTest. Modifiez ou ajoutez des balises si vous souhaitez exécuter uniquement un sous-ensemble de la suite de tests. Chaque scénario de test est décrit en haut de chaque test de confiance. Le scénario est une série d'étapes qui aident à comprendre les interactions et les résultats attendus de chaque cas de test. Vous pouvez étendre ces tests en ajoutant vos propres étapes ou en modifiant les étapes existantes.

    @ConfidenceTest Scenario: As a Developer, I can deploy GDK_COMPONENT_NAME to my device and see it is working as expected ....

Étape 5 : créer le fichier JAR de test

  1. Construisez le composant. Vous devez créer le composant avant de créer le module de test.

    gdk component build
  2. Créez le module de test à l'aide de la commande suivante. Cette commande créera le fichier JAR de test dans le greengrass-build dossier.

    gdk test-e2e build

Étape 6 : Exécuter le test

Lorsque vous exécutez un test de confiance, le GTF automatise le cycle de vie du test ainsi que la gestion des ressources créées pendant le test. Il approvisionne d'abord un appareil en cours de test (DUT) en tant qu'AWS IoTobjet et y installe le logiciel de base Greengrass. Il créera ensuite un nouveau composant nommé HelloWorld en utilisant la recette spécifiée dans ce chemin. Le HelloWorld composant est ensuite déployé sur le périphérique principal par le biais d'un déploiement d'objets Greengrass. Il sera ensuite vérifié si le déploiement est réussi. L'état du déploiement passera à 3 COMPLETED minutes si le déploiement est réussi.

  1. Accédez au gdk-config.json fichier dans le répertoire du projet pour cibler les tests avec le ConfidenceTest tag ou le tag yo8u spécifié à l'étape 4. Mettez à jour la test-e2e clé à l'aide de la commande suivante.

    "test-e2e":{ "gtf_options" : { "tags":"ConfidenceTest" } }
  2. Avant d'exécuter les tests, vous devez fournir des AWS informations d'identification au périphérique hôte. GTF utilise ces informations d'identification pour gérer les AWS ressources pendant le processus de test. Assurez-vous que le rôle que vous fournissez dispose des autorisations nécessaires pour automatiser les opérations nécessaires incluses dans le test.

    Exécutez les commandes suivantes pour fournir les AWS informations d'identification.

    1. Linux or Unix
      export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
      Windows Command Prompt (CMD)
      set AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE set AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
      PowerShell
      $env:AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE" $env:AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
  3. Exécutez le test à l'aide de la commande suivante.

    gdk test-e2e run

    Cette commande télécharge la dernière version du noyau Greengrass dans le greengrass-build dossier et exécute des tests en l'utilisant. Cette commande cible également uniquement les scénarios dotés de la ConfidenceTest balise et génère un rapport pour ces scénarios. Vous verrez que les AWS ressources créées lors de ce test sont supprimées à la fin du test.

Exemple : utiliser un test de confiance

Le module de test téléchargé dans le projet GDK consiste en un fichier de fonctionnalités fourni.

Dans l'exemple suivant, nous utilisons un fichier de fonctionnalités pour tester la fonctionnalité de déploiement d'objets du logiciel Greengrass. Nous testons partiellement la fonctionnalité de cette fonctionnalité avec un scénario qui effectue le déploiement d'un composant via GreengrassAWS Cloud. Il s'agit d'une série d'étapes qui nous aident à comprendre les interactions et les résultats attendus de ce cas d'utilisation.

  • Utilisez le fichier de fonctionnalités fourni.

    Accédez au gg-e2e-tests/src/main/resources/greengrass/features dossier dans le répertoire actuel. Vous pouvez trouver l'exemple confidenceTest.feature qui ressemble à l'exemple suivant.

    Feature: Confidence Test Suite Background: Given my device is registered as a Thing And my device is running Greengrass @ConfidenceTest Scenario: As a Developer, I can deploy GDK_COMPONENT_NAME to my device and see it is working as expected When I create a Greengrass deployment with components | GDK_COMPONENT_NAME | GDK_COMPONENT_RECIPE_FILE | | aws.greengrass.Cli | LATEST | And I deploy the Greengrass deployment configuration Then the Greengrass deployment is COMPLETED on the device after 180 seconds # Update component state accordingly. Possible states: {RUNNING, FINISHED, BROKEN, STOPPING} And I verify the GDK_COMPONENT_NAME component is RUNNING using the greengrass-cli

    Chaque scénario de test est décrit en haut de chaque test de confiance. Le scénario est une série d'étapes qui aident à comprendre les interactions et les résultats attendus de chaque cas de test. Vous pouvez étendre ces tests en ajoutant vos propres étapes ou en modifiant les étapes existantes. Chacun des scénarios inclut des commentaires qui vous aideront à effectuer ces ajustements.