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 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 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 projeto do GDK com um componente.
-
Inicialize um projeto GDK com um módulo de end-to-end teste.
-
Crie um caso de teste personalizado.
-
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 end-to-end módulo de teste
- Etapa 3: criar um caso de teste personalizado
- Etapa 4: adicionar uma tag ao novo caso de teste
- Etapa 5: criar o JAR de teste
- Etapa 6: executar o teste
- Exemplo: criar um caso de teste personalizado
Pré-requisitos
Para concluir este tutorial, você precisará do seguinte:
-
GDK versão 1.3.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 doHelloWorld
diretório. Esse diretório de teste é um projeto Mavenque depende do JAR independente de testes do Greengrass.
Etapa 3: criar 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, consulteExemplo: criar um caso de teste personalizado. Use as etapas a seguir para criar seu caso de teste personalizado:
-
Crie 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 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.No arquivo de recurso, adicione uma nova tag chamada
@HelloWorld
ao lado da@Sample
tag.@Sample @HelloWorld Scenario: As a developer, I can create a component and deploy it on my device ....
Etapa 5: criar 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
greengrass-build
pasta.gdk test-e2e build
Etapa 6: executar o teste
Quando você executa um caso de teste personalizado, o 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 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.
-
Acesse o
gdk-config.json
arquivo no diretório do projeto para direcionar os testes com aHelloWorld
tag. Atualize atest-e2e
chave 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. 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.
-
-
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 aHelloWorld
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: criar um caso de teste personalizado
O módulo de teste baixado no projeto GDK consiste em um recurso de amostra e um arquivo de implementação de etapas.
No exemplo a seguir, criamos 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.
-
Criar um arquivo de recurso
Navegue até a
gg-e2e-tests/src/main/resources/greengrass/features
pasta no diretório atual. Você pode encontrar a amostracomponent.feature
que se 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 a implantação de um componente por meio da nuvem 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
O GTF contém as definições de etapas de todas as etapas a seguir, exceto a etapa chamada:
And I call my custom step
. -
Implementar definições de etapas
O JAR autônomo do GTF contém as definições de etapas 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. Você pode 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 "); }