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:
-
Inicialize um projeto do GDK com um componente.
-
Inicialize um projeto do GDK com um módulo de teste ponta a ponta.
-
Use um teste do conjunto de testes de confiança.
-
Adicione uma tag ao novo caso de teste.
-
Crie o JAR de teste.
-
Execute o teste do .
Tópicos
- Pré-requisitos
- Etapa 1: inicializar um projeto do GDK com um componente
- Etapa 2: inicializar um projeto do GDK com um módulo de teste completo
- Etapa 3: usar um teste do conjunto de testes de confiança
- Etapa 4: adicionar uma tag ao novo caso de teste
- Etapa 5: compilar o JAR de teste
- Etapa 6: executar o teste
- Exemplo: usar um teste de confiança
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órioHelloWorld
. Esse diretório de teste é um projeto Mavenque 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 arquivoconfidenceTest.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
-
Crie o componente. Você deve criar o componente antes de criar o módulo de teste.
gdk component build
-
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.
-
Acesse o arquivo
gdk-config.json
no diretório do projeto para direcionar os testes com a tagConfidenceTest
ou qualquer tag que você especificou na etapa 4. Atualize a chavetest-e2e
usando o seguinte comando."test-e2e":{ "gtf_options" : { "tags":"ConfidenceTest" } }
-
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.
-
-
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 tagConfidenceTest
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 amostraconfidenceTest.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-cliCada 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.