Tutorial: usa un test di confidenza dalla suite di test di fiducia - AWS IoT Greengrass

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Tutorial: usa un test di confidenza dalla suite di test di fiducia

AWS IoT GreengrassTesting Framework (GTF) e Greengrass Development Kit (GDK) offrono agli sviluppatori modi per eseguire i test. end-to-end Puoi completare questo tutorial per inizializzare un progetto GDK con un componente, inizializzare un progetto GDK con un modulo di test e utilizzare un end-to-end test di confidenza della suite di test di confidenza. Dopo aver creato il tuo test case personalizzato, puoi eseguire il test.

Un test di confidenza è un test generico fornito da Greengrass che convalida i comportamenti fondamentali dei componenti. Questi test possono essere modificati o estesi per soddisfare esigenze più specifiche dei componenti.

Per questo tutorial useremo un HelloWorld componente. Se stai usando un altro componente, sostituisci il HelloWorld componente con il tuo componente.

In questo tutorial, esegui quanto indicato di seguito:

  1. Inizializza un progetto GDK con un componente.

  2. Inizializza un progetto GDK con un modulo di test. end-to-end

  3. Usa un test della suite di test di fiducia.

  4. Aggiungi un tag al nuovo test case.

  5. Crea il JAR di test.

  6. Eseguire il test .

Prerequisiti

Per completare questo tutorial, è necessario quanto segue:

  • GDK versione 1.6.0 o successiva

  • Java

  • Maven

  • Git

Fase 1: Inizializza un progetto GDK con un componente

  • Inizializza una cartella vuota con un progetto GDK. Scarica il HelloWorld componente implementato in Python eseguendo il seguente comando.

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

    Questo comando crea una nuova directory denominata HelloWorld nella directory corrente.

Fase 2: Inizializza un progetto GDK con un end-to-end modulo di test

  • GDK consente di scaricare il modello del modulo di test costituito da un'implementazione di funzionalità e fasi. Esegui il comando seguente per aprire la HelloWorld directory e inizializzare il progetto GDK esistente utilizzando un modulo di test.

    cd HelloWorld gdk test-e2e init

    Questo comando crea una nuova directory denominata gg-e2e-tests all'interno della HelloWorld directory. Questa directory di test è un progetto Maven che dipende dal JAR standalone di test Greengrass.

Passaggio 3: utilizzare un test della suite di test di fiducia

La scrittura di un test case di fiducia consiste nell'utilizzare il file di funzionalità fornito e, se necessario, nella modifica degli scenari. Per un esempio di utilizzo di un test di confidenza, vedereEsempio: crea un test case personalizzato. Per utilizzare un test di confidenza, attenersi alla seguente procedura:

  • Utilizzate il file di funzionalità fornito.

    Passate alla gg-e2e-tests/src/main/resources/greengrass/features cartella nella directory corrente. Apri il confidenceTest.feature file di esempio per utilizzare il test di fiducia.

Fase 4: Aggiungere un tag al nuovo test case

  • È possibile assegnare tag alle funzionalità e agli scenari per organizzare il processo di test. È possibile utilizzare i tag per classificare i sottoinsiemi di scenari e anche selezionare gli hook in modo condizionale da eseguire. Le funzionalità e gli scenari possono avere più tag separati da uno spazio.

    In questo esempio, stiamo usando il HelloWorld componente.

    Ogni scenario è contrassegnato con@ConfidenceTest. Modifica o aggiungi tag se desideri eseguire solo un sottoinsieme della suite di test. Ogni scenario di test è descritto all'inizio di ogni test di confidenza. Lo scenario è una serie di passaggi che aiutano a comprendere le interazioni e i risultati attesi di ogni caso di test. È possibile estendere questi test aggiungendo passaggi personalizzati o modificando quelli esistenti.

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

Passaggio 5: crea il JAR di test

  1. Costruisci il componente. È necessario creare il componente prima di creare il modulo di test.

    gdk component build
  2. Costruite il modulo di test utilizzando il seguente comando. Questo comando creerà il JAR di test nella greengrass-build cartella.

    gdk test-e2e build

Passaggio 6: eseguire il test

Quando si esegue un test di confidenza, il GTF automatizza il ciclo di vita del test oltre alla gestione delle risorse create durante il test. Innanzitutto esegue il provisioning di un dispositivo in fase di test (DUT) come dispositivo e installa su di esso il software di base Greengrass. AWS IoT Creerà quindi un nuovo componente denominato HelloWorld utilizzando la ricetta specificata in quel percorso. Il HelloWorld componente viene quindi distribuito sul dispositivo principale tramite una distribuzione di oggetti Greengrass. Verrà quindi verificato se l'implementazione è riuscita. Lo stato di distribuzione verrà modificato COMPLETED entro 3 minuti se la distribuzione ha esito positivo.

  1. Vai al gdk-config.json file nella directory del progetto per indirizzare i test con il ConfidenceTest tag o il tag yo8u specificato nel passaggio 4. Aggiorna la test-e2e chiave usando il seguente comando.

    "test-e2e":{ "gtf_options" : { "tags":"ConfidenceTest" } }
  2. Prima di eseguire i test, è necessario fornire AWS le credenziali al dispositivo host. GTF utilizza queste credenziali per gestire le AWS risorse durante il processo di test. Assicurati che il ruolo che fornisci disponga delle autorizzazioni necessarie per automatizzare le operazioni necessarie incluse nel test.

    Esegui i seguenti comandi per fornire le credenziali. AWS

    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. Eseguite il test utilizzando il seguente comando.

    gdk test-e2e run

    Questo comando scarica l'ultima versione del nucleo Greengrass nella greengrass-build cartella ed esegue i test utilizzandola. Questo comando si rivolge inoltre solo agli scenari con il ConfidenceTest tag e genera un report per tali scenari. Vedrai che le AWS risorse create durante questo test vengono scartate alla fine del test.

Esempio: utilizza un test di fiducia

Il modulo di test scaricato nel progetto GDK è costituito da un file di funzionalità fornito.

Nell'esempio seguente, utilizziamo un file di funzionalità per testare la funzionalità di distribuzione degli oggetti del software Greengrass. Testiamo parzialmente la funzionalità di questa funzionalità con uno scenario che esegue l'implementazione di un componente tramite GreengrassCloud AWS. Questa è una serie di passaggi che ci aiutano a comprendere le interazioni e i risultati attesi di questo caso d'uso.

  • Utilizza il file di funzionalità fornito.

    Passate alla gg-e2e-tests/src/main/resources/greengrass/features cartella nella directory corrente. È possibile trovare l'esempio confidenceTest.feature simile all'esempio seguente.

    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

    Ogni scenario di test è descritto all'inizio di ogni test di confidenza. Lo scenario è una serie di passaggi che aiutano a comprendere le interazioni e i risultati attesi di ogni caso di test. È possibile estendere questi test aggiungendo passaggi personalizzati o modificando quelli esistenti. Ciascuno degli scenari include commenti che consentono di apportare queste modifiche.