

Avviso di fine del supporto: il 7 ottobre 2026, AWS il supporto per. AWS IoT Greengrass Version 1 Dopo il 7 ottobre 2026, non potrai più accedere alle risorse. AWS IoT Greengrass V1 Per ulteriori informazioni, visita [Migrate](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html) from. AWS IoT Greengrass Version 1

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

# Configurare le impostazioni per i test runner
<a name="set-config-custom"></a>

Per eseguire suite di test personalizzate, i test runner devono configurare le proprie impostazioni in base alla suite di test che desiderano eseguire. Le impostazioni vengono specificate in base ai modelli di file di configurazione JSON presenti nella `<device-tester-extract-location>/configs/` cartella. Se necessario, i test runner devono anche impostare AWS le credenziali che IDT utilizzerà per connettersi al cloud. AWS 

In qualità di scrittore di test, dovrai configurare questi file per eseguire il [debug](run-tests-custom.md) della tua suite di test. È necessario fornire istruzioni ai test runner in modo che possano configurare le seguenti impostazioni in base alle esigenze per eseguire le suite di test. 

## Configura dispositivo.json
<a name="device-config-custom"></a>

Il `device.json` file contiene informazioni sui dispositivi su cui vengono eseguiti i test (ad esempio, indirizzo IP, informazioni di accesso, sistema operativo e architettura della CPU). 

I test runner possono fornire queste informazioni utilizzando il seguente `device.json` file modello che si trova nella `<device-tester-extract-location>/configs/` cartella.

```
[
    {
        "id": "<pool-id>",
        "sku": "<pool-sku>",
        "features": [
            {
                "name": "<feature-name>",             
                "value": "<feature-value>",                
                "configs": [
                    {
                        "name": "<config-name>",                    
                        "value": "<config-value>"
                    }
                ],
            }
        ],     
        "devices": [
            {
                "id": "<device-id>",              
                "connectivity": {
                    "protocol": "ssh | uart | docker",                   
                    // ssh
                    "ip": "<ip-address>",
                    "port": <port-number>,
                    "auth": {
                        "method": "pki | password",
                        "credentials": {
                            "user": "<user-name>", 
                            // pki
                            "privKeyPath": "/path/to/private/key",
                                         
                            // password
                            "password": "<password>",
                        }
                    },
                    
                    // uart
                    "serialPort": "<serial-port>",
                    
                    // docker
                    "containerId": "<container-id>",
                    "containerUser": "<container-user-name>",
                }
            }
        ]
    }
]
```

Tutti i campi che includono valori sono obbligatori, come descritto di seguito:

`id`  
Un ID alfanumerico definito dall'utente che identifica in modo univoco una raccolta di dispositivi denominata un *pool di dispositivi*. I dispositivi che appartengono a un pool devono avere lo stesso hardware. Durante l'esecuzione di una suite di test, i dispositivi del pool vengono utilizzati per parallelizzare il carico di lavoro. Più dispositivi vengono utilizzati per eseguire diversi test.

`sku`  
Un valore alfanumerico che identifica in modo univoco il dispositivo sottoposto a test. Lo SKU viene utilizzato per tracciare i dispositivi qualificati.  
Se desideri inserire la tua scheda nel AWS Partner Device Catalog, lo SKU che specifichi qui deve corrispondere allo SKU che utilizzi nella procedura di pubblicazione.

`features`  
Facoltativo. Un array contenente le caratteristiche supportate del dispositivo. Le funzionalità del dispositivo sono valori definiti dall'utente che configuri nella tua suite di test. È necessario fornire ai test runner informazioni sui nomi e sui valori delle funzionalità da includere nel `device.json` file. Ad esempio, se desiderate testare un dispositivo che funge da server MQTT per altri dispositivi, potete configurare la logica di test per convalidare livelli supportati specifici per una funzionalità denominata. `MQTT_QOS` I test runner forniscono questo nome di funzionalità e impostano il valore della funzionalità sui livelli QOS supportati dal proprio dispositivo. È possibile recuperare le informazioni fornite dal contesto [IDT con la `devicePool.features` query o dal contesto](idt-context.md) della [macchina a stati](idt-state-machine.md#state-machine-context) con la query. `pool.features`    
`features.name`  
Il nome della funzionalità.  
`features.value`  
I valori delle funzionalità supportate.  
`features.configs`  
Impostazioni di configurazione, se necessarie, per la funzionalità.    
`features.config.name`  
Il nome dell'impostazione di configurazione.  
`features.config.value`  
I valori di impostazione supportati.

`devices`  
Una serie di dispositivi nel pool da testare. È richiesto almeno un dispositivo.  <a name="device-array-fields"></a>  
`devices.id`  
Un identificativo univoco definito dall'utente del dispositivo sottoposto a test.  
`connectivity.protocol`  
Il protocollo di comunicazione utilizzato per comunicare con questo dispositivo. Ogni dispositivo in un pool deve utilizzare lo stesso protocollo.  
Attualmente, gli unici valori supportati sono `ssh` e `uart` per i dispositivi fisici e `docker` per i contenitori Docker.  
`connectivity.ip`  
L'indirizzo IP del dispositivo sottoposto a test.  
<a name="connectivity-protocol-ssh-only"></a>Questa proprietà si applica solo se `connectivity.protocol` è impostata su `ssh`.  
`connectivity.port`  
Facoltativo. Il numero di porta da utilizzare per le connessioni SSH.  
Il valore predefinito è 22.  
<a name="connectivity-protocol-ssh-only"></a>Questa proprietà si applica solo se `connectivity.protocol` è impostata su `ssh`.  
`connectivity.auth`  
Informazioni di autenticazione per la connessione.  
<a name="connectivity-protocol-ssh-only"></a>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.password`  
La password utilizzata per l'accesso al dispositivo da testare.  
Questo valore si applica solo se `connectivity.auth.method` è impostato su `password`.  
`connectivity.auth.credentials.privKeyPath`  
Il percorso completo alla chiave privata utilizzata per accedere al dispositivo sottoposto a test.  
Questo valore si applica solo se `connectivity.auth.method` è impostato su `pki`.  
`connectivity.auth.credentials.user`  
Il nome utente per l'accesso al dispositivo sottoposto a test.  
`connectivity.serialPort`  
Facoltativo. La porta seriale a cui è collegato il dispositivo.  
Questa proprietà si applica solo se `connectivity.protocol` è impostata su `uart`.  
`connectivity.containerId`  
L'ID contenitore o il nome del contenitore Docker in fase di test.  
<a name="connectivity-protocol-docker-only"></a>Questa proprietà si applica solo se `connectivity.protocol` è impostata su `docker`.  
`connectivity.containerUser`  
Facoltativo. Il nome da utente a utente all'interno del contenitore. Il valore predefinito è l'utente fornito nel Dockerfile.  
Il valore predefinito è 22.  
<a name="connectivity-protocol-docker-only"></a>Questa proprietà si applica solo se `connectivity.protocol` è impostata su `docker`.
Per verificare se i test runner configurano la connessione errata del dispositivo per un test, è possibile recuperarlo `pool.Devices[0].Connectivity.Protocol` dal contesto della macchina a stati e confrontarlo con il valore previsto in uno `Choice` stato. Se viene utilizzato un protocollo errato, stampa un messaggio utilizzando lo `LogMessage` stato e passa allo `Fail` stato.  
In alternativa, è possibile utilizzare il codice di gestione degli errori per segnalare un errore di test per tipi di dispositivi errati.

## (Facoltativo) Configura userdata.json
<a name="userdata-config-custom"></a>

Il `userdata.json` file contiene tutte le informazioni aggiuntive richieste da una suite di test ma non specificate nel file. `device.json` Il formato di questo file dipende dal [`userdata_scheme.json`file](idt-json-config.md#userdata-schema-json) definito nella suite di test. Se sei uno scrittore di test, assicurati di fornire queste informazioni agli utenti che eseguiranno le suite di test che scrivi.

## (Facoltativo) Configura resource.json
<a name="resource-config-custom"></a>

Il `resource.json` file contiene informazioni su tutti i dispositivi che verranno utilizzati come dispositivi di risorse. I dispositivi di risorse sono dispositivi necessari per testare determinate funzionalità di un dispositivo sottoposto a test. Ad esempio, per testare la funzionalità Bluetooth di un dispositivo, è possibile utilizzare un dispositivo di risorse per verificare che il dispositivo sia in grado di connettersi correttamente ad esso. I dispositivi di risorse sono opzionali e puoi richiedere tutti i dispositivi di risorse di cui hai bisogno. In qualità di autore del test, utilizzi il [file test.json](idt-json-config.md#test-json) per definire le funzionalità dei dispositivi di risorse necessarie per un test. I test runner utilizzano quindi il `resource.json` file per fornire un pool di dispositivi di risorse dotati delle funzionalità richieste. Assicurati di fornire queste informazioni agli utenti che eseguiranno le suite di test che scrivi. 

I test runner possono fornire queste informazioni utilizzando il seguente `resource.json` file modello che si trova nella `<device-tester-extract-location>/configs/` cartella.

```
[
    {
        "id": "<pool-id>",
        "features": [
            {
                "name": "<feature-name>",             
                "version": "<feature-value>",                
                "jobSlots": <job-slots>
            }
        ],     
        "devices": [
            {
                "id": "<device-id>",              
                "connectivity": {
                    "protocol": "ssh | uart | docker",                   
                    // ssh
                    "ip": "<ip-address>",
                    "port": <port-number>,
                    "auth": {
                        "method": "pki | password",
                        "credentials": {
                            "user": "<user-name>", 
                            // pki
                            "privKeyPath": "/path/to/private/key",
                                         
                            // password
                            "password": "<password>",
                        }
                    },
                    
                    // uart
                    "serialPort": "<serial-port>",
                    
                    // docker
                    "containerId": "<container-id>",
                    "containerUser": "<container-user-name>",
                }
            }
        ]
    }
]
```

Tutti i campi che includono valori sono obbligatori, come descritto di seguito:

`id`  
Un ID alfanumerico definito dall'utente che identifica in modo univoco una raccolta di dispositivi denominata un *pool di dispositivi*. I dispositivi che appartengono a un pool devono avere lo stesso hardware. Durante l'esecuzione di una suite di test, i dispositivi del pool vengono utilizzati per parallelizzare il carico di lavoro. Più dispositivi vengono utilizzati per eseguire diversi test.

`features`  
Facoltativo. Un array contenente le caratteristiche supportate del dispositivo. Le informazioni richieste in questo campo sono definite nei [file test.json](idt-json-config.md#test-json) nella suite di test e determinano quali test eseguire e come eseguirli. Se la suite di test non richiede alcuna funzionalità, questo campo non è obbligatorio.    
`features.name`  
Il nome della funzionalità.  
`features.version`  
La versione della funzionalità.  
`features.jobSlots`  
Impostazione per indicare quanti test possono utilizzare il dispositivo contemporaneamente. Il valore predefinito è `1`.

`devices`  <a name="device-array"></a>
Una serie di dispositivi nel pool da testare. È richiesto almeno un dispositivo.  <a name="device-array-fields"></a>  
`devices.id`  
Un identificativo univoco definito dall'utente del dispositivo sottoposto a test.  
`connectivity.protocol`  
Il protocollo di comunicazione utilizzato per comunicare con questo dispositivo. Ogni dispositivo in un pool deve utilizzare lo stesso protocollo.  
Attualmente, gli unici valori supportati sono `ssh` e `uart` per i dispositivi fisici e `docker` per i contenitori Docker.  
`connectivity.ip`  
L'indirizzo IP del dispositivo sottoposto a test.  
<a name="connectivity-protocol-ssh-only"></a>Questa proprietà si applica solo se `connectivity.protocol` è impostata su `ssh`.  
`connectivity.port`  
Facoltativo. Il numero di porta da utilizzare per le connessioni SSH.  
Il valore predefinito è 22.  
<a name="connectivity-protocol-ssh-only"></a>Questa proprietà si applica solo se `connectivity.protocol` è impostata su `ssh`.  
`connectivity.auth`  
Informazioni di autenticazione per la connessione.  
<a name="connectivity-protocol-ssh-only"></a>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.password`  
La password utilizzata per l'accesso al dispositivo da testare.  
Questo valore si applica solo se `connectivity.auth.method` è impostato su `password`.  
`connectivity.auth.credentials.privKeyPath`  
Il percorso completo alla chiave privata utilizzata per accedere al dispositivo sottoposto a test.  
Questo valore si applica solo se `connectivity.auth.method` è impostato su `pki`.  
`connectivity.auth.credentials.user`  
Il nome utente per l'accesso al dispositivo sottoposto a test.  
`connectivity.serialPort`  
Facoltativo. La porta seriale a cui è collegato il dispositivo.  
Questa proprietà si applica solo se `connectivity.protocol` è impostata su `uart`.  
`connectivity.containerId`  
L'ID contenitore o il nome del contenitore Docker in fase di test.  
<a name="connectivity-protocol-docker-only"></a>Questa proprietà si applica solo se `connectivity.protocol` è impostata su `docker`.  
`connectivity.containerUser`  
Facoltativo. Il nome da utente a utente all'interno del contenitore. Il valore predefinito è l'utente fornito nel Dockerfile.  
Il valore predefinito è 22.  
<a name="connectivity-protocol-docker-only"></a>Questa proprietà si applica solo se `connectivity.protocol` è impostata su `docker`.

## (Facoltativo) Configura config.json
<a name="config-json-custom"></a>

Il `config.json` file contiene informazioni di configurazione per IDT. In genere, i test runner non avranno bisogno di modificare questo file se non per fornire le proprie credenziali AWS utente per IDT e, facoltativamente, una regione. AWS Se vengono fornite AWS le credenziali con le autorizzazioni richieste, AWS IoT Device Tester raccoglie e invia le metriche di utilizzo a. AWS Si tratta di una funzionalità opzionale e viene utilizzata per migliorare la funzionalità IDT. Per ulteriori informazioni, consulta [Metriche di utilizzo IDT](idt-usage-metrics.md).

I test runner possono configurare le proprie AWS credenziali in uno dei seguenti modi:
+ **File di credenziali**

  IDT usa lo stesso file delle credenziali di AWS CLI. Per ulteriori informazioni, consulta l'argomento relativo ai [file di configurazione e delle credenziali](https://docs.aws.amazon.com/cli/latest/userguide/cli-config-files.html).

  La posizione del file delle credenziali varia in base al sistema operativo in uso:
  + macOS, Linux: `~/.aws/credentials`
  + Windows: `C:\Users\UserName\.aws\credentials`
+ **Variabili di ambiente**

  Le variabili di ambiente sono variabili gestite dal sistema operativo e utilizzate dai comandi di sistema. Le variabili definite durante una sessione SSH non sono disponibili dopo la chiusura della sessione. IDT può utilizzare le variabili di `AWS_SECRET_ACCESS_KEY` ambiente `AWS_ACCESS_KEY_ID` e per memorizzare le credenziali AWS 

  Per impostare queste variabili su Linux, macOS o Unix, utilizza **export**:

  ```
  export AWS_ACCESS_KEY_ID=<your_access_key_id>
  export AWS_SECRET_ACCESS_KEY=<your_secret_access_key>
  ```

  Per impostare queste variabili su Windows, utilizza **set**:

  ```
  set AWS_ACCESS_KEY_ID=<your_access_key_id>
  set AWS_SECRET_ACCESS_KEY=<your_secret_access_key>
  ```

Per configurare AWS le credenziali per IDT, i test runner modificano la `auth` sezione del `config.json` file che si trova nella cartella. `<device-tester-extract-location>/configs/`

```
{
    "log": {
        "location": "logs"
    },
    "configFiles": {
        "root": "configs",
        "device": "configs/device.json"
    },
    "testPath": "tests",
    "reportPath": "results",
    "awsRegion": "<region>",
    "auth": {
        "method": "file | environment",
        "credentials": {
            "profile": "<profile-name>"
        }
    }
}
]
```

Tutti i campi che includono valori sono obbligatori, come descritto di seguito:

**Nota**  
Tutti i percorsi di questo file sono definiti in relazione a. *<device-tester-extract-location>*

`log.location`  
Il percorso della cartella dei registri in. *<device-tester-extract-location>*

`configFiles.root`  
Il percorso della cartella che contiene i file di configurazione.

`configFiles.device`  
Il percorso del `device.json` file.

`testPath`  
Il percorso della cartella che contiene le suite di test.

`reportPath`  
Il percorso della cartella che conterrà i risultati dei test dopo che IDT avrà eseguito una suite di test.

`awsRegion`  
Facoltativo. La AWS regione che verranno utilizzate dalle suite di test. Se non è impostata, le suite di test utilizzeranno la regione predefinita specificata in ciascuna suite di test.

`auth.method`  
Il metodo utilizzato da IDT per recuperare AWS le credenziali. I valori supportati sono `file` il recupero delle credenziali da un file di credenziali e il recupero delle credenziali utilizzando le variabili `environment` di ambiente.

`auth.credentials.profile`  
Il profilo delle credenziali da utilizzare dal file delle credenziali. Questa proprietà si applica solo se `auth.method` è impostata su `file`.