Tutorial: Use um teste de confiança da suíte de testes de confiança - AWS IoT Greengrass

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Tutorial: Use um teste de confiança da suíte de testes de confiança

AWS IoT GreengrassO Testing Framework (GTF) e o Greengrass Development Kit (GDK) oferecem aos desenvolvedores maneiras de executar testes. end-to-end Você pode concluir este tutorial para inicializar um projeto do GDK com um componente, inicializar um projeto do GDK com um módulo de end-to-end teste 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 HelloWorld componente. Se você estiver usando outro componente, substitua o HelloWorld componente pelo seu componente.

Neste tutorial, você faz o seguinte:

  1. Inicialize um projeto do GDK com um componente.

  2. Inicialize um projeto GDK com um módulo de end-to-end teste.

  3. Use um teste da suíte 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 o download do HelloWorld componente implementado em Python executando o comando a seguir.

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

    Esse comando cria um novo diretório nomeado HelloWorld no diretório atual.

Etapa 2: inicializar um projeto do GDK com um end-to-end módulo de teste

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

    cd HelloWorld gdk test-e2e init

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

Etapa 3: use um teste da suíte de testes de confiança

Escrever um caso de teste de confiança consiste em usar o arquivo de recurso fornecido e, se necessário, modificar os cenários. Para obter um exemplo de uso de um teste de confiança, consulteExemplo: criar um caso de teste personalizado. Use as etapas a seguir para usar um teste de confiança:

  • Use o arquivo de recurso fornecido.

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

Etapa 4: adicionar uma tag ao novo caso de teste

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

    Neste exemplo, estamos usando o HelloWorld componente.

    Cada cenário é marcado com@ConfidenceTest. Altere ou adicione tags se quiser executar somente um subconjunto da suíte 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. Você pode 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: criar 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 greengrass-build pasta.

    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 AWS IoT coisa e instala o software principal do Greengrass nele. Em seguida, ele criará um novo componente chamado HelloWorld usando a receita especificada nesse caminho. O HelloWorld componente é então implantado no dispositivo principal por meio de uma implantação do Greengrass Thing. Em seguida, será 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 gdk-config.json arquivo no diretório do projeto para direcionar os testes com a ConfidenceTest tag ou qualquer tag que você especificou na Etapa 4. Atualize a test-e2e chave usando o comando a seguir.

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

    Execute os comandos a seguir para fornecer as AWS credenciais.

    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 comando a seguir.

    gdk test-e2e run

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

Exemplo: use um teste de confiança

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

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

  • Use o arquivo de recurso fornecido.

    Navegue até a gg-e2e-tests/src/main/resources/greengrass/features pasta no diretório atual. Você pode encontrar a amostra confidenceTest.feature que se 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. Você pode estender esses testes adicionando suas próprias etapas ou modificando as existentes. Cada um dos cenários inclui comentários que ajudam você a fazer esses ajustes.