Tutorial: Utilice una prueba de confianza del conjunto de pruebas de confianza - AWS IoT Greengrass

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Tutorial: Utilice una prueba de confianza del conjunto de pruebas de confianza

AWS IoT GreengrassTesting Framework (GTF) y Greengrass Development Kit (GDK) ofrecen a los desarrolladores formas de ejecutar pruebas. end-to-end Puede completar este tutorial para inicializar un proyecto de GDK con un componente, inicializar un proyecto de GDK con un módulo de prueba y utilizar una end-to-end prueba de confianza del conjunto de pruebas de confianza. Una vez que hayas creado tu caso de prueba personalizado, podrás ejecutar la prueba.

Una prueba de confianza es una prueba genérica proporcionada por Greengrass que valida los comportamientos de los componentes fundamentales. Estas pruebas se pueden modificar o ampliar para adaptarlas a necesidades de componentes más específicas.

Para este tutorial utilizaremos un HelloWorld componente. Si está utilizando otro componente, sustituya el HelloWorld componente por el suyo.

En este tutorial, aprenderá a hacer lo siguiente:

  1. Inicialice un proyecto de GDK con un componente.

  2. Inicialice un proyecto de GDK con un módulo de prueba. end-to-end

  3. Utilice una prueba del conjunto de pruebas de confianza.

  4. Añada una etiqueta al nuevo caso de prueba.

  5. Construye el JAR de prueba.

  6. Ejecute la prueba .

Requisitos previos

Necesitará lo siguiente para completar este tutorial:

  • GDK versión 1.6.0 o posterior

  • Java

  • Maven

  • Git

Paso 1: inicializar un proyecto de GDK con un componente

  • Inicialice una carpeta vacía con un proyecto de GDK. Descargue el HelloWorld componente implementado en Python ejecutando el siguiente comando.

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

    Este comando crea un nuevo directorio con HelloWorld el nombre del directorio actual.

Paso 2: inicializar un proyecto de GDK con un end-to-end módulo de prueba

  • GDK le permite descargar la plantilla del módulo de pruebas que consta de una función y una implementación escalonada. Ejecute el siguiente comando para abrir el HelloWorld directorio e inicializar el proyecto GDK existente mediante un módulo de pruebas.

    cd HelloWorld gdk test-e2e init

    Este comando crea un nuevo directorio con un nombre gg-e2e-tests dentro del HelloWorld directorio. Este directorio de pruebas es un proyecto de Maven que depende del JAR independiente de pruebas de Greengrass.

Paso 3: Utilice una prueba del conjunto de pruebas de confianza

La redacción de un caso de prueba de confianza consiste en utilizar el archivo de funciones proporcionado y, si es necesario, modificar los escenarios. Para ver un ejemplo del uso de una prueba de confianza, consulteEjemplo: crea un caso de prueba personalizado. Siga los siguientes pasos para utilizar una prueba de confianza:

  • Utilice el archivo de funciones proporcionado.

    Navegue hasta la gg-e2e-tests/src/main/resources/greengrass/features carpeta del directorio actual. Abra el confidenceTest.feature archivo de muestra para utilizar la prueba de confianza.

Paso 4: Añadir una etiqueta al nuevo caso de prueba

  • Puede asignar etiquetas a las características y escenarios para organizar el proceso de prueba. Puede usar etiquetas para categorizar los subconjuntos de escenarios y también seleccionar los ganchos de forma condicional para que se ejecuten. Las entidades y los escenarios pueden tener varias etiquetas separadas por un espacio.

    En este ejemplo, estamos usando el HelloWorld componente.

    Cada escenario está etiquetado con@ConfidenceTest. Cambie o añada etiquetas si desea ejecutar solo un subconjunto del conjunto de pruebas. Cada escenario de prueba se describe en la parte superior de cada prueba de confianza. El escenario consiste en una serie de pasos que ayudan a comprender las interacciones y los resultados esperados de cada caso de prueba. Puede ampliar estas pruebas añadiendo sus propios pasos o modificando los existentes.

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

Paso 5: Construye el JAR de prueba

  1. Construya el componente. Debe compilar el componente antes de crear el módulo de prueba.

    gdk component build
  2. Cree el módulo de prueba mediante el siguiente comando. Este comando generará el JAR de prueba en la greengrass-build carpeta.

    gdk test-e2e build

Paso 6: Ejecuta la prueba

Cuando realizas una prueba de confianza, el GTF automatiza el ciclo de vida de la prueba y gestiona los recursos que se crearon durante la prueba. Primero aprovisiona un dispositivo bajo prueba (DUT) como una AWS IoT cosa e instala el software principal de Greengrass en él. A continuación, creará un nuevo componente denominado HelloWorld con la receta especificada en esa ruta. A continuación, el HelloWorld componente se despliega en el dispositivo principal mediante un despliegue de Greengrass Thing. A continuación, se verificará si el despliegue se ha realizado correctamente. El estado de la implementación cambiará a COMPLETED dentro de 3 minutos si la implementación se realiza correctamente.

  1. Vaya al gdk-config.json archivo del directorio del proyecto para seleccionar las pruebas con la ConfidenceTest etiqueta o la etiqueta que haya especificado en el paso 4. Actualice la test-e2e clave con el siguiente comando.

    "test-e2e":{ "gtf_options" : { "tags":"ConfidenceTest" } }
  2. Antes de ejecutar las pruebas, debe proporcionar AWS las credenciales al dispositivo anfitrión. El GTF usa estas credenciales para administrar los AWS recursos durante el proceso de prueba. Asegúrese de que el rol que proporcione tenga permisos para automatizar las operaciones necesarias que se incluyen en la prueba.

    Ejecute los siguientes comandos para proporcionar las AWS credenciales.

    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. Ejecute la prueba con el siguiente comando.

    gdk test-e2e run

    Este comando descarga la última versión del núcleo de Greengrass de la greengrass-build carpeta y ejecuta pruebas con ella. Este comando también se dirige solo a los escenarios con la ConfidenceTest etiqueta y genera un informe para esos escenarios. Verá que los AWS recursos que se crearon durante esta prueba se descartan al final de la prueba.

Ejemplo: utilice una prueba de confianza

El módulo de pruebas descargado en el proyecto GDK consta de un archivo de funciones proporcionado.

En el siguiente ejemplo, utilizamos un archivo de funciones para probar la función de despliegue de elementos del software Greengrass. Probamos parcialmente la funcionalidad de esta función con un escenario que realiza el despliegue de un componente a través de GreengrassNube de AWS. Se trata de una serie de pasos que nos ayudan a entender las interacciones y los resultados esperados de este caso de uso.

  • Utilice el archivo de funciones proporcionado.

    Navegue hasta la gg-e2e-tests/src/main/resources/greengrass/features carpeta del directorio actual. Encontrará un ejemplo confidenceTest.feature parecido al siguiente.

    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

    Cada escenario de prueba se describe en la parte superior de cada prueba de confianza. El escenario consiste en una serie de pasos que ayudan a comprender las interacciones y los resultados esperados de cada caso de prueba. Puede ampliar estas pruebas añadiendo sus propios pasos o modificando los existentes. Cada uno de los escenarios incluye comentarios que le ayudan a realizar estos ajustes.