

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Tutorial: crea ed esegui la suite di test IDT di esempio
<a name="build-sample-suite"></a>

Il AWS IoT Device Tester download include il codice sorgente per una suite di test di esempio. Puoi completare questo tutorial per creare ed eseguire la suite di test di esempio e capire come utilizzare IDT per AWS IoT Greengrass eseguire suite di test personalizzate.

 In questo tutorial, completerai i seguenti passaggi: 

1. [Crea la suite di test di esempio](#build-sample)

1. [Usa IDT per eseguire la suite di test di esempio](#run-sample)

## Prerequisiti
<a name="prereqs-tutorial-sample"></a><a name="prereqs-list"></a>

Per completare questo tutorial, è necessario quanto segue: 
+ 

**Requisiti del computer host**
  + Versione più recente di AWS IoT Device Tester
  + [Python 3.7](https://www.python.org/downloads/) o successivo

    Per verificare la versione di Python installata sul tuo computer, esegui il seguente comando:

    ```
    python3 --version
    ```

    In Windows, se l'utilizzo di questo comando restituisce un errore, usalo `python --version` invece. Se il numero di versione restituito è 3.7 o superiore, esegui il comando seguente in un terminale Powershell da impostare `python3` come alias per il comando. `python` 

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

    Se non viene restituita alcuna informazione sulla versione o se il numero di versione è inferiore a 3.7, segui le istruzioni in [Downloading Python per installare Python](https://wiki.python.org/moin/BeginnersGuide/Download) 3.7\$1. Per ulteriori informazioni, consulta la documentazione di [Python](https://docs.python.org).
  + [urllib3](https://urllib3.readthedocs.io/en/latest/)

    Per verificare che `urllib3` sia installato correttamente, esegui il seguente comando:

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

    Se non `urllib3` è installato, esegui il seguente comando per installarlo:

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

**Requisiti per il dispositivo**
  + Un dispositivo con un sistema operativo Linux e una connessione di rete alla stessa rete del computer host. 

    Ti consigliamo di utilizzare un [Raspberry Pi](https://www.raspberrypi.org/) con sistema operativo Raspberry Pi. Assicurati di aver configurato [SSH](https://www.raspberrypi.org/documentation/remote-access/ssh/) sul tuo Raspberry Pi per connetterti in remoto ad esso.

## Configura le informazioni sul dispositivo per IDT
<a name="configure-idt-sample"></a>

Configura le informazioni sul dispositivo per consentire a IDT di eseguire il test. È necessario aggiornare il `device.json` modello che si trova nella `<device-tester-extract-location>/configs` cartella con le seguenti informazioni.

```
[
  {
    "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>"
            }
          }
        }
      }
    ]
  }
]
```

Nell'`devices`oggetto, fornite le seguenti informazioni:

`id`  
Un identificatore univoco definito dall'utente per il dispositivo.

`connectivity.ip`  
L'indirizzo IP del dispositivo.

`connectivity.port`  
Opzionale. Il numero di porta da utilizzare per le connessioni SSH al dispositivo.

`connectivity.auth`  
Informazioni di autenticazione per la connessione.  
Questa proprietà si applica solo se `connectivity.protocol` è impostata su `ssh`.    
`connectivity.auth.method`  
Il metodo di autorizzazione utilizzato per accedere a un dispositivo con un determinato protocollo di connettività.  
I valori supportati sono:  
+ `pki`
+ `password`  
`connectivity.auth.credentials`  
Le credenziali utilizzate per l'autenticazione.    
`connectivity.auth.credentials.user`  
Il nome utente utilizzato per accedere al dispositivo.  
`connectivity.auth.credentials.privKeyPath`  
Il percorso completo della chiave privata utilizzata per accedere al dispositivo.  
Questo valore si applica solo se `connectivity.auth.method` è impostato su `pki`.  
`devices.connectivity.auth.credentials.password`  
La password utilizzata per accedere al dispositivo.  
Questo valore si applica solo se `connectivity.auth.method` è impostato su `password`.

**Nota**  
Specificare `privKeyPath` solo se `method` è impostato su `pki`.  
Specificare `password` solo se `method` è impostato su `password`.

## Crea la suite di test di esempio
<a name="build-sample"></a>

La `<device-tester-extract-location>/samples/python` cartella contiene file di configurazione di esempio, codice sorgente e IDT Client SDK che puoi combinare in una suite di test utilizzando gli script di build forniti. Il seguente albero di directory mostra la posizione di questi file di esempio:

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

Per creare la suite di test, esegui i seguenti comandi sul tuo computer 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
```

------

In questo modo viene creata la suite di test di esempio nella `IDTSampleSuitePython_1.0.0` cartella all'interno della `<device-tester-extract-location>/tests` cartella. Esamina i file nella `IDTSampleSuitePython_1.0.0` cartella per capire come è strutturata la suite di test di esempio e per vedere vari esempi di eseguibili per test case e file JSON di configurazione dei test.

**Nota**  
La suite di test di esempio include il codice sorgente Python. Non includete informazioni sensibili nel codice della suite di test.

Passaggio successivo: usa IDT per [eseguire la suite di test di esempio](#run-sample) che hai creato.

## Usa IDT per eseguire la suite di test di esempio
<a name="run-sample"></a>

Per eseguire la suite di test di esempio, esegui i seguenti comandi sul tuo computer host: 

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

IDT esegue la suite di test di esempio e trasmette i risultati alla console. Al termine dell'esecuzione del test, vengono visualizzate le seguenti informazioni:

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

## Risoluzione dei problemi
<a name="tutorial-troubleshooting-custom"></a>

Utilizza le seguenti informazioni per risolvere eventuali problemi relativi al completamento del tutorial.

**Il test case non viene eseguito correttamente**  
Se il test non viene eseguito correttamente, IDT trasmette i log degli errori alla console per aiutarti a risolvere i problemi relativi all'esecuzione del test. [Assicurati di soddisfare tutti i prerequisiti per questo tutorial.](#prereqs-tutorial-sample)

**Impossibile connettersi al dispositivo in prova**

Verificare quanto segue:
+ Il `device.json` file contiene l'indirizzo IP, la porta e le informazioni di autenticazione corretti.
+ Puoi connetterti al tuo dispositivo tramite SSH dal tuo computer host.