

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\_machine.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\_schema.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 IDT-generated di prova.

`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`  
Opzionale. 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 rapporti IDT-generated di test.

`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`  
Opzionale. 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 rapporti IDT-generated di test.

`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`  
Opzionale. 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`  
Opzionale. 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`  
Opzionale. 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`  
Opzionale. 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`  
Opzionale. Gli argomenti da fornire per eseguire l'eseguibile del test case.

`environmentVariables`  
Opzionale. 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\_machine.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\_schema.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 Wi-Fi rete, 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)