Tutorial: usar um teste de confiança do conjunto de testes de confiança - AWS IoT Greengrass

Tutorial: usar um teste de confiança do conjunto de testes de confiança

O AWS IoT Greengrass Testing Framework (GTF) e o Greengrass Development Kit (GDK) oferecem aos desenvolvedores maneiras de executar testes de ponta a ponta. Você pode concluir este tutorial para inicializar um projeto do GDK com um componente, inicializar um projeto do GDK com um módulo de teste de ponta a ponta e usar um teste de confiança do conjunto de testes de confiança. Depois de criar seu caso de teste personalizado, você poderá executar o teste.

Um teste de confiança é um teste genérico fornecido pelo Greengrass que valida os comportamentos dos componentes fundamentais. Esses testes podem ser modificados ou estendidos para atender às necessidades mais específicas dos componentes.

Para este tutorial, usaremos um componente HelloWorld. Se você estiver usando outro componente, substitua o componente HelloWorld por ele.

Neste tutorial, você faz o seguinte:

  1. Inicialize um projeto do GDK com um componente.

  2. Inicialize um projeto do GDK com um módulo de teste ponta a ponta.

  3. Use um teste do conjunto de testes de confiança.

  4. Adicione uma tag ao novo caso de teste.

  5. Crie o JAR de teste.

  6. Execute o teste do .

Pré-requisitos

Para concluir este tutorial, você precisará do seguinte:

  • GDK versão 1.6.0 ou posterior

  • Java

  • Maven

  • Git

Etapa 1: inicializar um projeto do GDK com um componente

  • Inicialize uma pasta vazia com um projeto do GDK. Faça download do componente HelloWorld implementado em Python executando o comando a seguir.

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

    Esse comando cria um diretório chamado HelloWorld no diretório atual.

Etapa 2: inicializar um projeto do GDK com um módulo de teste completo

  • O GDK permite que você baixe o modelo do módulo de teste que consiste em uma implementação de atributos e etapas. Execute o comando a seguir para abrir o diretório HelloWorld e inicializar o projeto GDK existente usando um módulo de teste.

    cd HelloWorld gdk test-e2e init

    Esse comando cria um diretório chamado gg-e2e-tests no diretório HelloWorld. Esse diretório de teste é um projeto Maven que depende do JAR independente de testes do Greengrass.

Etapa 3: usar um teste do conjunto de testes de confiança

Escrever um caso de teste de confiança consiste em usar o arquivo de atributo fornecido e, se necessário, modificar os cenários. Para ver um exemplo de uso do teste de confiança, consulte Exemplo: criar um caso de teste personalizado. Siga as etapas a seguir para usar um teste de confiança:

  • Use o arquivo de atributo fornecido.

    Navegue até a pasta gg-e2e-tests/src/main/resources/greengrass/features no diretório atual. Abra o arquivo confidenceTest.feature de amostra para usar o teste de confiança.

Etapa 4: adicionar uma tag ao novo caso de teste

  • Você pode atribuir tags aos atributos e cenários para organizar o processo de teste. Você pode usar tags para categorizar os subconjuntos de cenários e também selecionar hooks condicionalmente para execução. Os atributos e os cenários podem ter várias tags separadas por um espaço.

    Neste exemplo, usamos o componente HelloWorld.

    Cada cenário é marcado com @ConfidenceTest. Altere ou adicione tags se quiser executar somente um subconjunto do conjunto de testes. Cada cenário de teste é descrito na parte superior de cada teste de confiança. O cenário é uma série de etapas que ajudam a entender as interações e os resultados esperados de cada caso de teste. É possível estender esses testes adicionando suas próprias etapas ou modificando as existentes.

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

Etapa 5: compilar o JAR de teste

  1. Crie o componente. Você deve criar o componente antes de criar o módulo de teste.

    gdk component build
  2. Crie o módulo de teste usando o comando a seguir. Esse comando criará o JAR de teste na pasta greengrass-build.

    gdk test-e2e build

Etapa 6: executar o teste

Quando você executa um teste de confiança, o GTF automatiza o ciclo de vida do teste, além de gerenciar os recursos que foram criados durante o teste. Primeiro, ele provisiona um dispositivo em teste (DUT) como uma coisa do AWS IoT e instala o software principal do Greengrass nele. Em seguida, ele criará um novo componente chamado HelloWorld usando a fórmula especificada nesse caminho. O componente do HelloWorld é então implantado no dispositivo principal por meio de uma implantação da coisa do Greengrass. Em seguida, é verificado se a implantação foi bem-sucedida. O status da implantação será alterado para COMPLETED dentro de 3 minutos se a implantação for bem-sucedida.

  1. Acesse o arquivo gdk-config.json no diretório do projeto para direcionar os testes com a tag ConfidenceTest ou qualquer tag que você especificou na etapa 4. Atualize a chave test-e2e usando o seguinte comando.

    "test-e2e":{ "gtf_options" : { "tags":"ConfidenceTest" } }
  2. Antes de executar os testes, você deve fornecer credenciais da AWS para o dispositivo host. O GTF usa essas credenciais para gerenciar os recursos da AWS durante o processo de teste. Certifique-se de que o perfil fornecido tenha permissões para automatizar as operações necessárias incluídas no teste.

    Execute os seguintes comandos para fornecer as credenciais da 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. Execute o teste usando o seguinte comando.

    gdk test-e2e run

    Esse comando baixa a versão mais recente do núcleo do Greengrass na pasta greengrass-build e executa testes usando-a. Esse comando também visa somente os cenários com a tag ConfidenceTest e gera um relatório para eles. Você verá que os recursos da AWS criados durante esse teste serão descartados no final dele.

Exemplo: usar um teste de confiança

O módulo de teste baixado no projeto do GDK consiste em um arquivo de atributo fornecido.

No exemplo a seguir, usamos um arquivo de atributo para testar o atributo de implantação do objeto do software Greengrass. Testamos parcialmente a funcionalidade desse atributo com um cenário que executa a implantação de um componente por meio da Nuvem AWS do Greengrass. Esta é uma série de etapas que nos ajudam a entender as interações e os resultados esperados deste caso de uso.

  • Use o arquivo de atributo fornecido.

    Navegue até a pasta gg-e2e-tests/src/main/resources/greengrass/features no diretório atual. É possível encontrar uma amostra confidenceTest.feature que parece com o exemplo a seguir.

    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 cenário de teste é descrito na parte superior de cada teste de confiança. O cenário é uma série de etapas que ajudam a entender as interações e os resultados esperados de cada caso de teste. É possível estender esses testes adicionando suas próprias etapas ou modificando as existentes. Cada um dos cenários inclui comentários que ajudam a fazer esses ajustes.