

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

# Crea file di configurazione della suite di test IDT
<a name="idt-json-config"></a>

Questa sezione descrive i formati in cui crei i file di configurazione JSON da includere quando scrivi una suite di test personalizzata.<a name="required-json"></a>File JSON richiesti

`suite.json`  
Contiene informazioni sulla suite di test. Per informazioni, consulta [Configura suite.json](#suite-json).

`group.json`  
Contiene informazioni su un gruppo di test. È necessario creare un `group.json` file per ogni gruppo di test nella suite di test. Per informazioni, consulta [Configura group.json](#group-json).

`test.json`  
Contiene informazioni su un test case. È necessario creare un `test.json` file per ogni test case nella suite di test. Per informazioni, consulta [Configura test.json](#test-json).File JSON opzionali

`state_machine.json`  
Definisce come vengono eseguiti i test quando IDT esegue la suite di test. Per informazioni, consulta [Configura state\$1machine.json](#state-machine-json).

`userdata_schema.json`  
Definisce lo schema per il [`userdata.json`file](set-config-custom.md#userdata-config-custom) che i test runner possono includere nella configurazione delle impostazioni. Il `userdata.json` file viene utilizzato per tutte le informazioni di configurazione aggiuntive necessarie per eseguire il test ma che non sono presenti nel `device.json` file. Per informazioni, consulta [Configura userdata\$1schema.json](#userdata-schema-json).

I file di configurazione JSON vengono inseriti nel file `<custom-test-suite-folder>` come mostrato qui.

```
<custom-test-suite-folder>
└── suite
    ├── suite.json
    ├── state_machine.json
    ├── userdata_schema.json
    ├── <test-group-folder>
        ├── group.json
        ├── <test-case-folder>
            └── test.json
```

## Configura suite.json
<a name="suite-json"></a>

Il `suite.json` file imposta le variabili di ambiente e determina se i dati utente sono necessari per eseguire la suite di test. Utilizzate il seguente modello per configurare il `<custom-test-suite-folder>/suite/suite.json` file: 

```
{
    "id": "<suite-name>_<suite-version>",
    "title": "<suite-title>",
    "details": "<suite-details>",
    "userDataRequired": true | false,
    "environmentVariables": [
        {
            "key": "<name>",
            "value": "<value>",
        },
        ...
        {
            "key": "<name>",
            "value": "<value>",
        }
    ]
}
```

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

`id`  
Un ID univoco definito dall'utente per la suite di test. Il valore di `id` deve corrispondere al nome della cartella della suite di test in cui si trova il `suite.json` file. Il nome e la versione della suite devono inoltre soddisfare i seguenti requisiti:   
+ `<suite-name>`non può contenere caratteri di sottolineatura.
+ `<suite-version>`è indicato come`x.x.x`, dove `x` è un numero.
L'ID viene visualizzato nei rapporti di test generati da IDT.

`title`  
Un nome definito dall'utente per il prodotto o la funzionalità testata da questa suite di test. Il nome viene visualizzato nella CLI IDT per i test runner.

`details`  
Una breve descrizione dello scopo della suite di test.

`userDataRequired`  
Definisce se i test runner devono includere informazioni personalizzate in un `userdata.json` file. Se imposti questo valore su`true`, devi anche includere il [`userdata_schema.json`file](#userdata-schema-json) nella cartella della suite di test.

`environmentVariables`  
Facoltativo. Una serie di variabili di ambiente da impostare per questa suite di test.    
`environmentVariables.key`  
Il nome della variabile di ambiente.  
`environmentVariables.value`  
Il valore della variabile di ambiente.

## Configura group.json
<a name="group-json"></a>

Il `group.json` file definisce se un gruppo di test è obbligatorio o facoltativo. Utilizzate il seguente modello per configurare il `<custom-test-suite-folder>/suite/<test-group>/group.json` file: 

```
{
    "id": "<group-id>",
    "title": "<group-title>",
    "details": "<group-details>",
    "optional": true | false,
}
```

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

`id`  
Un ID univoco definito dall'utente per il gruppo di test. Il valore di `id` deve corrispondere al nome della cartella del gruppo di test in cui si trova il `group.json` file e non deve contenere caratteri di sottolineatura ()`_`. L'ID viene utilizzato nei report di test generati da IDT.

`title`  
Un nome descrittivo per il gruppo di test. Il nome viene visualizzato nella CLI IDT per i test runner.

`details`  
Una breve descrizione dello scopo del gruppo di test.

`optional`  
Facoltativo. Imposta `true` per visualizzare questo gruppo di test come gruppo opzionale dopo che IDT ha terminato l'esecuzione dei test richiesti. Il valore predefinito è `false`.

## Configura test.json
<a name="test-json"></a>

Il `test.json` file determina gli eseguibili del test case e le variabili di ambiente utilizzate da un test case. Per ulteriori informazioni sulla creazione di eseguibili per i test case, vedere. [Crea eseguibili per test case IDT](test-executables.md)

Utilizzate il seguente modello per configurare il `<custom-test-suite-folder>/suite/<test-group>/<test-case>/test.json` file: 

```
{
    "id": "<test-id>",
    "title": "<test-title>",
    "details": "<test-details>",
    "requireDUT": true | false,
    "requiredResources": [
        {
            "name": "<resource-name>",
            "features": [
                {
                    "name": "<feature-name>",
                    "version": "<feature-version>",
                    "jobSlots": <job-slots>
                }
            ]
        }
    ],
    "execution": {
        "timeout": <timeout>,
        "mac": {
            "cmd": "/path/to/executable",
            "args": [
                "<argument>"
            ],
        },
        "linux": {
            "cmd": "/path/to/executable",
            "args": [
                "<argument>"
            ],
        },
        "win": {
            "cmd": "/path/to/executable",
            "args": [
                "<argument>"
            ]
        }
    },
    "environmentVariables": [
        {
            "key": "<name>",
            "value": "<value>",
        }
    ]
}
```

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

`id`  
Un ID univoco definito dall'utente per il test case. Il valore di `id` deve corrispondere al nome della cartella del test case in cui si trova il `test.json` file e non deve contenere caratteri di sottolineatura ()`_`. L'ID viene utilizzato nei report di test generati da IDT.

`title`  
Un nome descrittivo per il test case. Il nome viene visualizzato nella CLI IDT per i test runner.

`details`  
Una breve descrizione dello scopo del test case.

`requireDUT`  
Facoltativo. Imposta `true` se è necessario un dispositivo per eseguire questo test, altrimenti imposta su`false`. Il valore predefinito è `true`. I test runner configureranno i dispositivi che useranno per eseguire il test nel proprio `device.json` file.

`requiredResources`  
Facoltativo. Un array che fornisce informazioni sui dispositivi di risorse necessari per eseguire questo test.     
`requiredResources.name`  
Il nome univoco da assegnare al dispositivo di risorse durante l'esecuzione di questo test.  
`requiredResources.features`  
Una serie di funzionalità del dispositivo di risorse definite dall'utente.     
`requiredResources.features.name`  
Il nome della funzionalità. La funzionalità del dispositivo per cui si desidera utilizzare questo dispositivo. Questo nome viene confrontato con il nome della funzionalità fornito dal test runner nel `resource.json` file.  
`requiredResources.features.version`  
Facoltativo. La versione della funzionalità. Questo valore viene confrontato con la versione della funzionalità fornita dal test runner nel `resource.json` file. Se non viene fornita una versione, la funzionalità non viene verificata. Se non è richiesto un numero di versione per la funzionalità, lascia vuoto questo campo.  
`requiredResources.features.jobSlots`  
Facoltativo. Il numero di test simultanei che questa funzionalità può supportare. Il valore predefinito è `1`. Se desideri che IDT utilizzi dispositivi distinti per le singole funzionalità, ti consigliamo di impostare questo valore su. `1`

`execution.timeout`  
La quantità di tempo (in millisecondi) che IDT attende prima che il test finisca. Per ulteriori informazioni sull'impostazione di questo valore, vedere. [Crea eseguibili per test case IDT](test-executables.md)

`execution.os`  
Gli eseguibili del test case da eseguire in base al sistema operativo del computer host che esegue IDT. I valori supportati sono `linux`, `mac` e `win`.     
`execution.os.cmd`  
Il percorso dell'eseguibile del test case che si desidera eseguire per il sistema operativo specificato. Questa posizione deve trovarsi nel percorso di sistema.  
`execution.os.args`  
Facoltativo. Gli argomenti da fornire per eseguire l'eseguibile del test case.

`environmentVariables`  
Facoltativo. Una serie di variabili di ambiente impostate per questo test case.     
`environmentVariables.key`  
Il nome della variabile di ambiente.  
`environmentVariables.value`  
Il valore della variabile di ambiente.
Se specificate la stessa variabile di ambiente nel `test.json` file e nel `suite.json` file, il valore nel `test.json` file ha la precedenza. 

## Configura state\$1machine.json
<a name="state-machine-json"></a>

Una macchina a stati è un costrutto che controlla il flusso di esecuzione della suite di test. Determina lo stato iniziale di una suite di test, gestisce le transizioni di stato in base a regole definite dall'utente e continua la transizione attraverso tali stati fino a raggiungere lo stato finale. 

Se la vostra suite di test non include una macchina a stati definita dall'utente, IDT genererà una macchina a stati per voi. La macchina a stati predefinita svolge le seguenti funzioni:
+ Fornisce ai test runner la possibilità di selezionare ed eseguire gruppi di test specifici, anziché l'intera suite di test.
+ Se non sono selezionati gruppi di test specifici, esegue ogni gruppo di test nella suite di test in ordine casuale. 
+ Genera report e stampa un riepilogo della console che mostra i risultati dei test per ogni gruppo di test e test case.

Per ulteriori informazioni sul funzionamento della macchina a stati IDT, vedere[Configurare la macchina a stati IDT](idt-state-machine.md).

## Configura userdata\$1schema.json
<a name="userdata-schema-json"></a>

Il `userdata_schema.json` file determina lo schema in cui i test runner forniscono i dati degli utenti. I dati utente sono necessari se la suite di test richiede informazioni che non sono presenti nel `device.json` file. Ad esempio, i test potrebbero richiedere credenziali di rete Wi-Fi, porte aperte specifiche o certificati che un utente deve fornire. Queste informazioni possono essere fornite a IDT come parametro di input chiamato`userdata`, il cui valore è un `userdata.json` file, che gli utenti creano nella propria `<device-tester-extract-location>/config` cartella. Il formato del `userdata.json` file si basa sul `userdata_schema.json` file incluso nella suite di test.

Per indicare che i test runner devono fornire un `userdata.json` file:

1. Nel `suite.json` file, imposta su`userDataRequired`. `true`

1. Nel tuo`<custom-test-suite-folder>`, crea un `userdata_schema.json` file.

1. Modifica il `userdata_schema.json` file per creare uno schema [JSON IETF Draft v4](https://json-schema.org/specification-links.html#draft-4) valido.

Quando IDT esegue la suite di test, legge automaticamente lo schema e lo usa per convalidare il `userdata.json` file fornito dal test runner. [Se valido, il contenuto del `userdata.json` file è disponibile sia nel contesto [IDT che nel contesto](idt-context.md) della macchina a stati.](idt-state-machine.md#state-machine-context)