Tutorial: Ejecute end-to-end pruebas con Greengrass Testing Framework y Greengrass Development Kit - 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: Ejecute end-to-end pruebas con Greengrass Testing Framework y Greengrass Development Kit

AWS IoT Greengrass Testing Framework (GTF) y Greengrass Development Kit (GDK) ofrecen a los desarrolladores formas de ejecutar end-to-end pruebas. Puede completar este tutorial para inicializar un GDK proyecto con un componente, inicializar un GDK proyecto con un módulo de end-to-end prueba y crear un caso de prueba personalizado. Una vez que haya compilado su caso de prueba personalizado, podrá ejecutar la prueba.

En este tutorial, aprenderá a hacer lo siguiente:

  1. Inicialice un GDK proyecto con un componente.

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

  3. Cree un caso de prueba personalizado.

  4. Agregue una etiqueta al nuevo caso de prueba.

  5. Cree la pruebaJAR.

  6. Ejecute la prueba .

Requisitos previos

Necesitará lo siguiente para completar este tutorial:

  • GDKversión 1.3.0 o posterior

  • Java

  • Maven

  • Git

Paso 1: inicializar un GDK proyecto con un componente

  • Inicialice una carpeta vacía con un GDK proyecto. Para descargar el componente HelloWorld implementado en Python, ejecute el siguiente comando.

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

    Este comando crea un directorio denominado HelloWorld en el directorio actual.

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

  • GDKle 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 GDK proyecto existente mediante un módulo de pruebas.

    cd HelloWorld gdk test-e2e init

    Este comando crea un directorio denominado gg-e2e-tests dentro del directorio HelloWorld. Este directorio de pruebas es un proyecto de Maven que depende de la versión independiente de pruebas de Greengrass. JAR

Paso 3: Crear un caso de prueba personalizado

La redacción de un caso de prueba personalizado consta, en líneas generales, de dos pasos: crear un archivo de características con un escenario de prueba e implementar las definiciones de los pasos. Para ver un ejemplo de cómo crear un caso de prueba personalizado, consulte Ejemplo: crear un caso de prueba personalizado. Siga los pasos que se describen a continuación para crear un caso de prueba personalizado:

  1. Cree un archivo de características con un escenario de prueba

    Por lo general, una característica describe una funcionalidad específica del software que se está probando. En Cucumber, cada característica se especifica como un archivo de características individual con un título, una descripción detallada y uno o más ejemplos de casos específicos denominados escenarios. Cada escenario consta de un título, una descripción detallada y una serie de pasos que definen las interacciones y los resultados esperados. Los escenarios se escriben en un formato estructurado con las palabras clave “dado”, “cuándo” y “entonces”.

  2. Implementación de definiciones de pasos

    Una definición de paso vincula el paso de Gherkin en lenguaje sencillo con el código programático. Cuando Cucumber identifique un paso de Gherkin en un escenario, buscará una definición de paso coincidente para ejecutarlo.

Paso 4: Agregar 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 enlaces de forma condicional para que se ejecuten. Las características y los escenarios pueden tener varias etiquetas separadas por un espacio.

    En este ejemplo, estamos usando el componente HelloWorld.

    En el archivo de características, agrega una nueva etiqueta con un nombre @HelloWorld junto a la etiqueta @Sample.

    @Sample @HelloWorld Scenario: As a developer, I can create a component and deploy it on my device ....

Paso 5: Cree la prueba JAR

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

    gdk component build
  2. Compile el módulo de prueba con el siguiente comando. Este comando compilará las pruebas JAR en la greengrass-build carpeta.

    gdk test-e2e build

Paso 6: Ejecutar la prueba

Al ejecutar un caso de prueba personalizado, GTF se automatiza el ciclo de vida de la prueba y se gestionan 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 componente HelloWorld se implementa en el dispositivo principal mediante una implementación de objeto de Greengrass. A continuación, se verificará si la implementación se realiza correctamente. El estado de la implementación cambiará a COMPLETED dentro de 3 minutos si la implementación se realiza correctamente.

  1. Vaya al archivo gdk-config.json en el directorio del proyecto para apuntar a las pruebas con la etiqueta HelloWorld. Actualice la clave test-e2e mediante el siguiente comando.

    "test-e2e":{ "gtf_options" : { "tags":"HelloWorld" } }
  2. Antes de ejecutar las pruebas, debe proporcionar AWS las credenciales al dispositivo anfitrión. GTFusa estas credenciales para administrar los AWS recursos durante el proceso de prueba. Asegúrese de que el rol que proporcione tenga los 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 carpeta greengrass-build y ejecuta pruebas con ella. Este comando también se dirige solo a los escenarios con la etiqueta HelloWorld 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: crear un caso de prueba personalizado

El módulo de pruebas descargado del GDK proyecto consta de una función de muestra y un archivo de implementación gradual.

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

  1. Creación de un archivo de características

    Navegue hasta la carpeta gg-e2e-tests/src/main/resources/greengrass/features del directorio actual. Puede encontrar el ejemplo component.feature con el aspecto del siguiente ejemplo.

    En este archivo de características, puede probar la característica de implementación de objetos del software Greengrass. Puede probar parcialmente la funcionalidad de esta característica con un escenario que realice la implementación de un componente a través de la nube de Greengrass. El escenario consiste en una serie de pasos que ayudan a comprender las interacciones y los resultados esperados de cada caso de prueba.

    Feature: Testing features of Greengrassv2 component Background: Given my device is registered as a Thing And my device is running Greengrass @Sample Scenario: As a developer, I can create a component and deploy it on my device When I create a Greengrass deployment with components HelloWorld | /path/to/recipe/file And I deploy the Greengrass deployment configuration Then the Greengrass deployment is COMPLETED on the device after 180 seconds And I call my custom step

    GTFcontiene las definiciones de todos los pasos siguientes, excepto el paso denominado:And I call my custom step.

  2. Implementación de definiciones de pasos

    GTFstandalone JAR contiene las definiciones de todos los pasos excepto uno:And I call my custom step. Puede implementar este paso en el módulo de pruebas.

    Navegue hasta el código de origen del archivo de prueba. Puede vincular su paso personalizado mediante una definición de paso utilizando el siguiente comando.

    @And("I call my custom step") public void customStep() { System.out.println("My custom step was called "); }