

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: usar um teste de confiança do conjunto de testes de confiança
<a name="confidence-tests-tutorial"></a>

AWS IoT Greengrass O 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.

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

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

1. Adicione uma tag ao novo caso de teste.

1. Crie o JAR de teste.

1. Execute o teste do .

**Topics**
+ [Pré-requisitos](#confidence-tests-tutorial-prerequisites)
+ [Etapa 1: inicializar um projeto do GDK com um componente](#init-gdk-with-component)
+ [Etapa 2: inicializar um projeto do GDK com um end-to-end módulo de teste](#init-gdk-with-e2e-test)
+ [Etapa 3: usar um teste do conjunto de testes de confiança](#confidence-tests-tutorial-instructions)
+ [Etapa 4: adicionar uma tag ao novo caso de teste](#add-tag-to-test-case)
+ [Etapa 5: compilar o JAR de teste](#build-test-jar)
+ [Etapa 6: executar o teste](#run-test-gtf)
+ [Exemplo: usar um teste de confiança](#build-confidence-test-case-example)

## Pré-requisitos
<a name="confidence-tests-tutorial-prerequisites"></a>

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
<a name="init-gdk-with-component"></a>
+ 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 end-to-end módulo de teste
<a name="init-gdk-with-e2e-test"></a>
+ 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](https://maven.apache.org/) que depende do JAR independente de testes do Greengrass.

## Etapa 3: usar um teste do conjunto de testes de confiança
<a name="confidence-tests-tutorial-instructions"></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](run-e2e-tests-tutorial.md#build-test-case-example). 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
<a name="add-tag-to-test-case"></a>
+ 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
<a name="build-test-jar"></a>

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

   ```
   gdk component build
   ```

1. 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
<a name="run-test-gtf"></a>

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 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"
        }
     }
   ```

1. 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 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.

   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"
     ```

------

1. 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 AWS recursos criados durante esse teste serão descartados no final do teste.

## Exemplo: usar um teste de confiança
<a name="build-confidence-test-case-example"></a>

**Example**  
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.  <a name="build-confidence-test-case-example-steps"></a>
+ 

**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.