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 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 crear un caso de end-to-end prueba personalizado. Después de crear tu caso de prueba personalizado, puedes ejecutar la prueba.

En este tutorial, aprenderá a hacer lo siguiente:

  1. Inicializa un proyecto de GDK con un componente.

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

  3. Cree un caso de prueba personalizado.

  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.3.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 de una implementación por etapas. 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: Cree 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, consulteEjemplo: crea un caso de prueba personalizado. Siga los siguientes pasos para crear su caso de prueba personalizado:

  1. Cree un archivo de funciones con un escenario de prueba

    Por lo general, una función describe una funcionalidad específica del software que se está probando. En Cucumber, cada función se especifica como un archivo de funciones 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. Implemente 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: Añade 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.

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

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

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 ejecutas un caso de prueba personalizado, 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 HelloWorld etiqueta. Actualice la test-e2e clave con el siguiente comando.

    "test-e2e":{ "gtf_options" : { "tags":"HelloWorld" } }
  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 HelloWorld 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: crea un caso de prueba personalizado

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

En el siguiente ejemplo, creamos un archivo de funciones para probar la función de despliegue de cosas 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.

  1. Cree un archivo de funciones

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

    En este archivo de funciones, puede probar la función de despliegue de Thing del software Greengrass. Puede probar parcialmente la funcionalidad de esta función con un escenario que realice el despliegue 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 este caso de uso.

    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

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

  2. Implemente las definiciones de pasos

    El JAR independiente de GTF 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 fuente del archivo de prueba. Puede vincular su paso personalizado mediante una definición de paso mediante el siguiente comando.

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