

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: compile e execute o pacote de amostra de teste de IDT
<a name="build-sample-suite"></a>

O AWS IoT Device Tester download inclui o código-fonte de uma amostra de suíte de testes. Você pode concluir este tutorial para criar e executar a suíte de testes de amostra para entender como você pode usar o IDT AWS IoT Greengrass para executar suítes de testes personalizadas.

 Neste tutorial, você concluirá as seguintes etapas: 

1. [Compile o pacote de teste de amostra](#build-sample)

1. [Usar o IDT para executar o pacote de teste de amostra](#run-sample)

## Pré-requisitos
<a name="prereqs-tutorial-sample"></a><a name="prereqs-list"></a>

Para concluir este tutorial, você precisará do seguinte: 
+ 

**Requisitos do computador host**
  + Versão mais recente do AWS IoT Device Tester
  + [Python](https://www.python.org/downloads/) 3.7 ou posterior

    Para verificar a versão do Python instalada em seu computador, execute o seguinte comando:

    ```
    python3 --version
    ```

    No Windows, se o uso deste comando retornar um erro, use `python --version`. Se o número da versão retornada for 3.7 ou superior, execute o seguinte comando em um terminal do Powershell para definir `python3` como um alias para seu comando `python`. 

    ```
    Set-Alias -Name "python3" -Value "python"
    ```

    Se nenhuma informação sobre versão for retornada ou se o número da versão for menor do que 3.7, siga as instruções em [Fazer download do Python](https://wiki.python.org/moin/BeginnersGuide/Download) para instalar o Python 3.7\$1. Para obter mais informações, consulte a [Documentação do Python](https://docs.python.org).
  + [urllib3](https://urllib3.readthedocs.io/en/latest/)

    Para verificar se `urllib3` está instalado corretamente, execute o seguinte comando:

    ```
    python3 -c 'import urllib3'
    ```

    Se o `urllib3` não estiver instalado, execute o comando a seguir para instalá-lo:

    ```
    python3 -m pip install urllib3
    ```
+ 

**Requisitos do dispositivo**
  + Um dispositivo com sistema operacional Linux e uma conexão de rede com a mesma rede do seu computador host. 

    É recomendado o uso de um [Raspberry Pi](https://www.raspberrypi.org/) com o sistema operacional Raspberry Pi. Certifique-se de configurar o [SSH](https://www.raspberrypi.org/documentation/remote-access/ssh/) no seu Raspberry Pi para se conectar remotamente a ele.

## Configurar as informações do dispositivo para o IDT
<a name="configure-idt-sample"></a>

Configure as informações do seu dispositivo para o IDT executar o teste. É preciso atualizar o modelo `device.json` localizado na pasta `<device-tester-extract-location>/configs` com as informações a seguir.

```
[
  {
    "id": "pool",
    "sku": "N/A",
    "devices": [
      {
        "id": "<device-id>",
        "connectivity": {
          "protocol": "ssh",
          "ip": "<ip-address>",
          "port": "<port>",
          "auth": {
            "method": "pki | password",
            "credentials": {
              "user": "<user-name>",
              "privKeyPath": "/path/to/private/key",
              "password": "<password>"
            }
          }
        }
      }
    ]
  }
]
```

No objeto `devices`, forneça as seguintes informações:

`id`  
Um identificador exclusivo, definido pelo usuário, para o seu dispositivo.

`connectivity.ip`  
O endereço IP do seu dispositivo.

`connectivity.port`  
Opcional. O número da porta que deve ser usado nas conexões SSH ao seu dispositivo.

`connectivity.auth`  
Informações de autenticação da conexão.  
Essa propriedade será aplicada somente se `connectivity.protocol` estiver definido como `ssh`.    
`connectivity.auth.method`  
O método de autenticação usado para acessar um dispositivo pelo protocolo de conectividade indicado.  
Os valores compatíveis são:  
+ `pki`
+ `password`  
`connectivity.auth.credentials`  
As credenciais usadas para autenticação.    
`connectivity.auth.credentials.user`  
O nome de usuário usado para fazer login no seu dispositivo.  
`connectivity.auth.credentials.privKeyPath`  
O caminho completo para a chave privada usada para fazer login no dispositivo.  
Esse valor se aplica somente se `connectivity.auth.method` estiver definido como `pki`.  
`devices.connectivity.auth.credentials.password`  
A senha usada para fazer login no dispositivo.  
Esse valor se aplica somente se `connectivity.auth.method` estiver definido como `password`.

**nota**  
Especifique `privKeyPath` somente se `method` estiver definido como `pki`.  
Especifique `password` somente se `method` estiver definido como `password`.

## Compile o pacote de teste de amostra
<a name="build-sample"></a>

A pasta `<device-tester-extract-location>/samples/python` contém exemplos de arquivos de configuração, código-fonte e o SDK do cliente IDT que você pode combinar em um pacote de teste usando os scripts de compilação fornecidos. A seguinte árvore de diretórios mostra a localização desses arquivos de amostra:

```
<device-tester-extract-location>
├── ...
├── tests
├── samples
│   ├── ...
│   └── python
│       ├── configuration
│       ├── src
│       └── build-scripts
│           ├── build.sh
│           └── build.ps1
└── sdks
    ├── ...
    └── python
        └── idt_client
```

Para compilar o pacote de teste, execute os seguintes comandos em seu computador host:

------
#### [ Windows ]

```
cd <device-tester-extract-location>/samples/python/build-scripts
./build.ps1
```

------
#### [ Linux, macOS, or UNIX ]

```
cd <device-tester-extract-location>/samples/python/build-scripts
./build.sh
```

------

Isso compila o conjunto de testes de amostra na pasta `IDTSampleSuitePython_1.0.0` dentro da pasta `<device-tester-extract-location>/tests`. Examine os arquivos na pasta `IDTSampleSuitePython_1.0.0` para entender como o pacote de testes de amostra está estruturado e confira vários exemplos de executáveis de casos de teste e arquivos JSON de configuração de teste.

**nota**  
O pacote de teste de amostra inclui um código-fonte em Python. Não inclua informações confidenciais no código do seu pacote de teste.

Próxima etapa: use o IDT para [executar o pacote de teste de amostra](#run-sample) criada.

## Usar o IDT para executar o pacote de teste de amostra
<a name="run-sample"></a>

Para executar o pacote de teste de amostra, execute os seguintes comandos em seu computador host: 

```
cd <device-tester-extract-location>/bin
./devicetester_[linux | mac | win_x86-64] run-suite --suite-id IDTSampleSuitePython
```

O IDT executa o pacote de teste de amostra e transmite os resultados para o console. Quando a execução do teste é concluída, são vistas as seguintes informações:

```
========== Test Summary ==========
Execution Time:         5s
Tests Completed:        4
Tests Passed:           4
Tests Failed:           0
Tests Skipped:          0
----------------------------------
Test Groups:
    sample_group:       PASSED
----------------------------------
Path to IoT Device Tester Report: /path/to/devicetester/results/87e673c6-1226-11eb-9269-8c8590419f30/awsiotdevicetester_report.xml
Path to Test Execution Logs: /path/to/devicetester/results/87e673c6-1226-11eb-9269-8c8590419f30/logs
Path to Aggregated JUnit Report: /path/to/devicetester/results/87e673c6-1226-11eb-9269-8c8590419f30/IDTSampleSuitePython_Report.xml
```

## Solução de problemas
<a name="tutorial-troubleshooting-custom"></a>

Use as informações a seguir para ajudar a resolver os problemas ao concluir o tutorial.

**Caso de teste não é executado**  
Se o teste não for executado, o IDT transmitirá os logs de erro para o console e isso pode ajudar a solucionar o problema de execução do teste. Verifique se todos os [pré-requisitos deste tutorial](#prereqs-tutorial-sample) são atendidos.

**Não é possível se conectar ao dispositivo em teste**

Verifique o seguinte:
+ Seu arquivo `device.json` contém o endereço IP, a porta e as informações de autenticação corretos.
+ Você pode se conectar ao seu dispositivo via SSH a partir do seu computador host.