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: Execute end-to-end testes usando o Greengrass Testing Framework e o Greengrass Development Kit
AWS IoT Greengrass O Testing Framework (GTF) e o Greengrass Development Kit (GDK) oferecem aos desenvolvedores maneiras de executar end-to-end testes. Você pode concluir este tutorial para inicializar um GDK projeto com um componente, inicializar um GDK projeto com um módulo de end-to-end teste e criar um caso de teste personalizado. Depois de criar seu caso de teste personalizado, você poderá executar o teste.
Neste tutorial, você faz o seguinte:
-
Inicialize um GDK projeto com um componente.
-
Inicialize um GDK projeto com um módulo end-to-end de teste.
-
Crie um caso de teste personalizado.
-
Adicione uma tag ao novo caso de teste.
-
Crie o testeJAR.
-
Execute o teste do .
Tópicos
- Pré-requisitos
- Etapa 1: inicializar um GDK projeto com um componente
- Etapa 2: inicializar um GDK projeto com um módulo de end-to-end teste
- Etapa 3: definir um caso de teste personalizado
- Etapa 4: Adicionar uma tag ao novo caso de teste
- Etapa 5: criar o teste JAR
- Etapa 6: executar o teste
- Exemplo: criar um caso de teste personalizado
Pré-requisitos
Para concluir este tutorial, você precisará do seguinte:
-
GDKversão 1.3.0 ou posterior
-
Java
-
Maven
-
Git
Etapa 1: inicializar um GDK projeto com um componente
-
Inicialize uma pasta vazia com um GDK projeto. 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 GDK projeto com um módulo de end-to-end teste
-
GDKpermite 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 GDK projeto 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 teste autônomo do Greengrass. JAR
Etapa 3: definir um caso de teste personalizado
Escrever um caso de teste personalizado consiste basicamente em duas etapas: criar um arquivo de recurso com um cenário de teste e implementar as definições das etapas. Para ver um exemplo de criação de um caso de teste personalizado, consulte Exemplo: criar um caso de teste personalizado. Use as etapas a seguir para criar seu caso de teste personalizado:
-
Criar um arquivo de recurso com um cenário de teste
Um recurso geralmente descreve uma funcionalidade específica do software que está sendo testado. No Cucumber, cada recurso é especificado como um arquivo de recurso individual com um título, uma descrição detalhada e um ou mais exemplos de casos específicos chamados cenários. Cada cenário consiste em um título, uma descrição detalhada e uma série de etapas que definem as interações e os resultados esperados. Os cenários são escritos em um formato estruturado usando as palavras-chave “determinado”, “quando” e “então”.
-
Implementar definições de etapas
Uma definição de etapa vincula a etapa Gherkin
em linguagem simples ao código programático. Quando o Cucumber identifica uma etapa do Gherkin em um cenário, ele procura uma definição de etapa correspondente para ser executada.
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
.No arquivo de recurso, adicione uma nova tag chamada
@HelloWorld
ao lado da tag@Sample
.@Sample @HelloWorld Scenario: As a developer, I can create a component and deploy it on my device ....
Etapa 5: criar o teste JAR
-
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 teste JAR na
greengrass-build
pasta.gdk test-e2e build
Etapa 6: executar o teste
Quando você executa um caso de teste personalizado, ele GTF automatiza o ciclo de vida do teste junto com o gerenciamento de 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 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.
-
Vá para o arquivo
gdk-config.json
no diretório do projeto para direcionar os testes com a tagHelloWorld
. Atualize a chavetest-e2e
usando o comando a seguir."test-e2e":{ "gtf_options" : { "tags":"HelloWorld" } }
-
Antes de executar os testes, você deve fornecer AWS credenciais para o dispositivo host. GTFusa essas credenciais para gerenciar os AWS recursos 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 comandos a seguir para fornecer as AWS credenciais.
-
-
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 tagHelloWorld
e gera um relatório para eles. Você verá que os AWS recursos criados durante esse teste serão descartados no final do teste.
Exemplo: criar um caso de teste personalizado
O módulo de teste baixado no GDK projeto consiste em um recurso de amostra e um arquivo de implementação de etapas.
No exemplo a seguir, criamos 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.
-
Criar um arquivo de atributos
Navegue até a pasta
gg-e2e-tests/src/main/resources/greengrass/features
no diretório atual. É possível encontrar uma amostracomponent.feature
que parece com o exemplo a seguir.Nesse arquivo de recurso, você pode testar o recurso de implantação do software Greengrass. Você pode testar parcialmente a funcionalidade desse recurso com um cenário que executa uma implantação de um componente por meio da nuvem do Greengrass. O cenário é uma série de etapas que ajudam a entender as interações e os resultados esperados desse 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
GTFcontém as definições de todas as etapas a seguir, exceto a etapa chamada:
And I call my custom step
. -
Implementar definições de etapas
GTFstandalone JAR contém as definições de etapa de todas as etapas, exceto de uma etapa:
And I call my custom step
. Você pode implementar essa etapa no módulo de teste.Navegue até o código-fonte do arquivo de teste. É possível vincular sua etapa personalizada usando uma definição de etapa usando o comando a seguir.
@And("I call my custom step") public void customStep() { System.out.println("My custom step was called "); }