

Aviso de fin de soporte: el 7 de octubre de 2026, AWS suspenderemos el soporte para AWS IoT Greengrass Version 1. Después del 7 de octubre de 2026, ya no podrá acceder a los AWS IoT Greengrass V1 recursos. Para obtener más información, visita [Migrar desde AWS IoT Greengrass Version 1](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html).

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Cree archivos de configuración IDT para su conjunto de pruebas.
<a name="idt-json-config"></a>

En esta sección se describen los formatos en los que se crean los archivos de configuración JSON que se incluyen al escribir un conjunto de pruebas personalizado.<a name="required-json"></a>Archivos JSON necesarios

`suite.json`  
Contiene información sobre el conjunto de pruebas. Consulte [Configuración de suite.json](#suite-json).

`group.json`  
Contiene información sobre un grupo de pruebas. Debe crear un archivo `group.json` para cada grupo de pruebas de su conjunto de pruebas. Consulte [Configuración de group.json](#group-json).

`test.json`  
Contiene información sobre un caso de prueba. Debe crear un archivo `test.json` para cada caso de prueba de su conjunto de pruebas. Consulte [Configuración de test.json](#test-json).Archivos JSON opcionales

`state_machine.json`  
Define cómo se ejecutan las pruebas cuando IDT ejecuta el conjunto de pruebas. Consulte [Configuración de state\$1machine.json](#state-machine-json).

`userdata_schema.json`  
Define el esquema del [archivo `userdata.json`](set-config-custom.md#userdata-config-custom) que los ejecutores de pruebas pueden incluir en su configuración de ajustes. El archivo `userdata.json` se utiliza para cualquier información de configuración adicional necesaria para ejecutar la prueba, pero que no esté presente en el archivo `device.json`. Consulte [Configuración de userdata\$1schema.json](#userdata-schema-json).

Los archivos de configuración JSON se colocan en su archivo `<custom-test-suite-folder>`, tal y como se muestra aquí.

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

## Configuración de suite.json
<a name="suite-json"></a>

El archivo `suite.json` establece las variables de entorno y determina si los datos del usuario son necesarios para ejecutar el conjunto de pruebas. Utilice la siguiente plantilla para configurar el archivo `<custom-test-suite-folder>/suite/suite.json`: 

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

Todos los campos que contienen valores son obligatorios tal y como se describe aquí:

`id`  
Un ID único definido por el usuario para el conjunto de pruebas. El valor de `id` debe coincidir con el nombre de la carpeta del conjunto de pruebas en la que se encuentra el archivo `suite.json`. El nombre y la versión del conjunto también deben cumplir los siguientes requisitos:   
+ `<suite-name>` no puede contener guiones bajos.
+ `<suite-version>` se indica como `x.x.x`, donde `x` es un número.
El ID se muestra en los informes de prueba generados por IDT.

`title`  
Un nombre definido por el usuario para el producto o la característica que se está probando en este conjunto de pruebas. El nombre se muestra en la CLI de IDT para los ejecutores de pruebas.

`details`  
Una descripción corta de la finalidad del conjunto de pruebas.

`userDataRequired`  
Define si los ejecutores de pruebas deben incluir información personalizada en un archivo `userdata.json`. Si establece este valor en `true`, también debe incluir el [archivo `userdata_schema.json`](#userdata-schema-json) en la carpeta del conjunto de pruebas.

`environmentVariables`  
Opcional. Una matriz de variables de entorno que se va a configurar para este conjunto de pruebas.    
`environmentVariables.key`  
El nombre de la variable de entorno.  
`environmentVariables.value`  
El valor de la variable de entorno.

## Configuración de group.json
<a name="group-json"></a>

El archivo `group.json` define si el grupo de prueba es obligatorio u opcional. Utilice la siguiente plantilla para configurar el archivo `<custom-test-suite-folder>/suite/<test-group>/group.json`: 

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

Todos los campos que contienen valores son obligatorios tal y como se describe aquí:

`id`  
Un identificador único definido por el usuario para el conjunto de pruebas. El valor de `id` debe coincidir con el nombre de la carpeta del grupo de pruebas en la que se encuentra el archivo `group.json` y no debe contener guiones bajos (`_`). El identificador se utiliza en los informes de prueba generados por IDT.

`title`  
Un nombre descriptivo para el grupo de prueba. El nombre se muestra en la CLI de IDT para los ejecutores de pruebas.

`details`  
Una descripción corta de la finalidad del grupo de pruebas.

`optional`  
Opcional. Establézcalo en `true` para mostrar este grupo de pruebas como un grupo opcional una vez que IDT termine de ejecutar las pruebas requeridas. El valor predeterminado es `false`.

## Configuración de test.json
<a name="test-json"></a>

El archivo `test.json` determina los ejecutables del caso de prueba y las variables de entorno que utiliza un caso de prueba. Para obtener más información sobre cómo crear ejecutables de casos de prueba, consulte [Cree ejecutables de casos de prueba de IDT](test-executables.md).

Utilice la siguiente plantilla para configurar el archivo `<custom-test-suite-folder>/suite/<test-group>/<test-case>/test.json`: 

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

Todos los campos que contienen valores son obligatorios tal y como se describe aquí:

`id`  
Un identificador único definido por el usuario para el caso de pruebas. El valor de `id` debe coincidir con el nombre de la carpeta del caso de pruebas en la que se encuentra el archivo `test.json` y no debe contener guiones bajos (`_`). El identificador se utiliza en los informes de prueba generados por IDT.

`title`  
Un nombre descriptivo para el caso de prueba. El nombre se muestra en la CLI de IDT para los ejecutores de pruebas.

`details`  
Una breve descripción de la finalidad del caso de prueba.

`requireDUT`  
Opcional. Establézcalo en `true` si se requiere un dispositivo para ejecutar esta prueba; de lo contrario, establézcalo en `false`. El valor predeterminado es `true`. Los ejecutores de las pruebas configurarán los dispositivos que utilizarán para ejecutar la prueba en su archivo `device.json`.

`requiredResources`  
Opcional. Una matriz que proporciona información sobre los dispositivos de recursos necesarios para ejecutar esta prueba.     
`requiredResources.name`  
El nombre exclusivo que se asignará al dispositivo de recursos cuando se ejecute esta prueba.  
`requiredResources.features`  
Una matriz de características del dispositivo de recursos definidas por el usuario.     
`requiredResources.features.name`  
El nombre de la característica. La característica del dispositivo para la que desea utilizar este dispositivo. Este nombre se coteja con el nombre de la característica que proporciona el ejecutor de las pruebas en el archivo `resource.json`.  
`requiredResources.features.version`  
Opcional. La versión de la característica. Este valor se coteja con la versión de la característica proporcionada por el ejecutor de las pruebas en el archivo `resource.json`. Si no se proporciona una versión, la característica no se comprueba. Si no se necesita un número de versión para la característica, deje este campo en blanco.  
`requiredResources.features.jobSlots`  
Opcional. El número de pruebas simultáneas que puede admitir esta característica. El valor predeterminado es `1`. Si desea que IDT utilice distintos dispositivos para características individuales, le recomendamos que establezca este valor en `1`.

`execution.timeout`  
La cantidad de tiempo (en milisegundos) que IDT espera a que la prueba termine de ejecutarse. Para obtener más información sobre cómo establecer este valor, consulte [Cree ejecutables de casos de prueba de IDT](test-executables.md).

`execution.os`  
Los ejecutables del caso de prueba que se ejecutarán en función del sistema operativo del equipo host que ejecuta IDT. Los valores admitidos son `linux`, `mac` y `win`.     
`execution.os.cmd`  
La ruta al ejecutable del caso de prueba que desea ejecutar para el sistema operativo especificado. Esta ubicación debe estar en la ruta del sistema.  
`execution.os.args`  
Opcional. Los argumentos que se deben proporcionar para ejecutar el ejecutable del caso de prueba.

`environmentVariables`  
Opcional. Una matriz de variables de entorno definidas para este caso de prueba.     
`environmentVariables.key`  
El nombre de la variable de entorno.  
`environmentVariables.value`  
El valor de la variable de entorno.
Si especifica la misma variable de entorno en el archivo `test.json` y en el archivo `suite.json`, el valor del archivo `test.json` tiene prioridad. 

## Configuración de state\$1machine.json
<a name="state-machine-json"></a>

Una máquina de estados es un constructo que controla el flujo de ejecución del conjunto de pruebas. Determina el estado inicial de un conjunto de pruebas, administra las transiciones de estado en función de las reglas definidas por el usuario y continúa pasando por esos estados hasta alcanzar el estado final. 

Si su conjunto de pruebas no incluye una máquina de estados definida por el usuario, IDT la generará. La máquina de estados predeterminada realiza las siguientes funciones:
+ Ofrece a los ejecutores de pruebas la posibilidad de seleccionar y ejecutar grupos de pruebas específicos, en lugar de todo el conjunto de pruebas.
+ Si no se seleccionan grupos de pruebas específicos, ejecuta todos los grupos de pruebas del conjunto de pruebas con asignación al azar. 
+ Genera informes e imprime un resumen de la consola que muestra los resultados de las pruebas de cada grupo y caso de prueba.

Para obtener más información sobre cómo funciona la máquina de estados de IDT, consulte [Configure la máquina de estados IDT](idt-state-machine.md).

## Configuración de userdata\$1schema.json
<a name="userdata-schema-json"></a>

El archivo `userdata_schema.json` determina el esquema en el que los ejecutores de las pruebas proporcionan los datos de usuario. Los datos de usuario son necesarios si su conjunto de pruebas requiere información que no está presente en el archivo `device.json`. Por ejemplo, es posible que las pruebas necesiten credenciales de red Wi-Fi, puertos abiertos específicos o certificados que deba proporcionar un usuario. Esta información se puede proporcionar a IDT como un parámetro de entrada denominado`userdata`, cuyo valor es un archivo `userdata.json`, que los usuarios crean en su carpeta `<device-tester-extract-location>/config`. El formato del archivo `userdata.json` se basa en el archivo `userdata_schema.json` que se incluye en el conjunto de pruebas.

Para indicar que los ejecutores de pruebas deben proporcionar un archivo `userdata.json`:

1. En el archivo `suite.json`, establezca `userDataRequired` en `true`.

1. En su `<custom-test-suite-folder>`, cree un archivo `userdata_schema.json`.

1. Edite el archivo `userdata_schema.json` para crear un [borrador del esquema JSON v4 de IETF](https://json-schema.org/specification-links.html#draft-4) válido.

Cuando IDT ejecuta su conjunto de pruebas, lee automáticamente el esquema y lo usa para validar el archivo `userdata.json` proporcionado por el ejecutor de la prueba. Si es válido, el contenido del archivo `userdata.json` está disponible tanto en el contexto [IDT como en el contexto](idt-context.md) de la [máquina de estados](idt-state-machine.md#state-machine-context).