

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.

# Configuración de los ajustes para los ejecutores de pruebas
<a name="set-config-custom"></a>

Para ejecutar conjuntos de pruebas personalizados, los ejecutores de pruebas deben configurar sus ajustes en función del conjunto de pruebas que desean ejecutar. Los ajustes se especifican en función de las plantillas del archivo de configuración JSON que se encuentran en la carpeta `<device-tester-extract-location>/configs/`. Si es necesario, los ejecutores de pruebas también deben configurar AWS las credenciales que IDT utilizará para conectarse a la AWS nube. 

Como redactor de pruebas, necesitará configurar estos archivos para [depurar su conjunto de pruebas](run-tests-custom.md). Debe proporcionar instrucciones a los ejecutores de pruebas para que puedan configurar los siguientes ajustes según sea necesario para ejecutar sus conjuntos de pruebas. 

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

El archivo `device.json` contiene información sobre los dispositivos en los que se ejecutan las pruebas (por ejemplo, dirección IP, información de inicio de sesión, sistema operativo y arquitectura de la CPU). 

Los ejecutores de pruebas pueden proporcionar esta información mediante el siguiente archivo `device.json` de plantilla que se encuentra en la carpeta `<device-tester-extract-location>/configs/`.

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

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

`id`  
Un ID alfanumérico definido por el usuario que identifica de forma única una colección de dispositivos que se conoce como *grupo de dispositivos*. Los dispositivos que pertenecen a un grupo deben tener idéntico hardware. Al ejecutar un conjunto de pruebas, los dispositivos del grupo se utilizan para paralelizar la carga de trabajo. Se utilizan varios dispositivos para ejecutar diferentes pruebas.

`sku`  
Un valor alfanumérico que identifica de forma única el dispositivo a prueba. El SKU se utiliza para realizar un seguimiento de los dispositivos calificados.  
Si quieres incluir tu placa en el catálogo de AWS Partner dispositivos, la SKU que especifiques aquí debe coincidir con la que utilizaste en el proceso de publicación.

`features`  
Opcional. Una matriz que contenga las características compatibles del dispositivo. Las características del dispositivo son valores definidos por el usuario que se configuran en el conjunto de pruebas. Debe proporcionar a los ejecutores de las pruebas información sobre los nombres y valores de las características que desee incluir en el archivo `device.json`. Por ejemplo, si quiere probar un dispositivo que funciona como servidor MQTT para otros dispositivos, puede configurar la lógica de prueba para validar los niveles admitidos específicos para una característica denominada `MQTT_QOS`. Los ejecutores de las pruebas proporcionan el nombre de esta característica y establecen su valor en los niveles de QOS compatibles con su dispositivo. Puede recuperar la información proporcionada desde el [contexto de IDT](idt-context.md) con la consulta `devicePool.features` o desde el [contexto de la máquina de estados](idt-state-machine.md#state-machine-context) con la consulta `pool.features`.    
`features.name`  
El nombre de la característica.  
`features.value`  
Los valores de la característica admitidos.  
`features.configs`  
Los ajustes de configuración de la característica, si son necesarios.    
`features.config.name`  
El nombre del ajuste de configuración.  
`features.config.value`  
Los valores de configuración admitidos.

`devices`  
Una matriz de dispositivos en el grupo que se va a probar. Se requiere al menos un dispositivo.  <a name="device-array-fields"></a>  
`devices.id`  
Un identificador único y definido por el usuario para el dispositivo que se está probando.  
`connectivity.protocol`  
El protocolo de comunicación que se usará para la comunicación con este dispositivo. Cada dispositivo de un grupo debe usar el mismo protocolo.  
Actualmente, los únicos valores que se admiten son `ssh` y `uart` para dispositivos físicos y `docker` para contenedores de Docker.  
`connectivity.ip`  
La dirección IP del dispositivo que se está probando.  
<a name="connectivity-protocol-ssh-only"></a>Esta propiedad solo se aplica si `connectivity.protocol` está establecido en `ssh`.  
`connectivity.port`  
Opcional. El número de puerto que se va a utilizar para las conexiones SSH.  
El valor predeterminado es 22.  
<a name="connectivity-protocol-ssh-only"></a>Esta propiedad solo se aplica si `connectivity.protocol` está establecido en `ssh`.  
`connectivity.auth`  
Información de autenticación para la conexión.  
<a name="connectivity-protocol-ssh-only"></a>Esta propiedad solo se aplica si `connectivity.protocol` está establecido en `ssh`.    
`connectivity.auth.method`  
El método de autenticación que se utiliza para acceder a un dispositivo a través de un determinado protocolo de conectividad.  
Los valores admitidos son:  
+ `pki`
+ `password`  
`connectivity.auth.credentials`  
Las credenciales que se utilizan para la autenticación.    
`connectivity.auth.credentials.password`  
La contraseña que se utiliza para iniciar sesión en el dispositivo que se va a probar.  
Este valor solo se aplica si `connectivity.auth.method` está establecido en `password`.  
`connectivity.auth.credentials.privKeyPath`  
La ruta completa a la clave privada que se utiliza para iniciar sesión en el dispositivo que se está probando.  
Este valor solo se aplica si `connectivity.auth.method` está establecido en `pki`.  
`connectivity.auth.credentials.user`  
El nombre de usuario para iniciar sesión en el dispositivo que se está probando.  
`connectivity.serialPort`  
Opcional. El puerto serie al que está conectado el dispositivo.  
Esta propiedad solo se aplica si `connectivity.protocol` está establecido en `uart`.  
`connectivity.containerId`  
El ID de contenedor o el nombre del contenedor de Docker que se está probando.  
<a name="connectivity-protocol-docker-only"></a>Esta propiedad solo se aplica si `connectivity.protocol` está establecido en `docker`.  
`connectivity.containerUser`  
Opcional. El nombre del usuario que se va a utilizar dentro del contenedor. El valor predeterminado es el usuario proporcionado en el Dockerfile.  
El valor predeterminado es 22.  
<a name="connectivity-protocol-docker-only"></a>Esta propiedad solo se aplica si `connectivity.protocol` está establecido en `docker`.
Para comprobar si los ejecutores de las pruebas configuran una conexión de dispositivo incorrecta para una prueba, puede recuperar `pool.Devices[0].Connectivity.Protocol` del contexto de la máquina de estados y realizar una comparación con el valor esperado en un estado `Choice`. Si se utiliza un protocolo incorrecto, imprima un mensaje con el estado `LogMessage` y haga la transición al estado `Fail`.  
Como alternativa, puede utilizar un código de gestión de errores para informar de un fallo en la prueba para los tipos de dispositivos incorrectos.

## (Opcional) Configuración de userdata.json
<a name="userdata-config-custom"></a>

El archivo `userdata.json` contiene cualquier información adicional que requiera un conjunto de pruebas, pero que no esté especificada en el archivo `device.json`. El formato de este archivo depende del [archivo `userdata_scheme.json`](idt-json-config.md#userdata-schema-json) definido en el conjunto de pruebas. Si es un redactor de pruebas, asegúrese de proporcionar esta información a los usuarios que van a ejecutar los conjuntos de pruebas que escriba.

## (Opcional) Configuración de resource.json
<a name="resource-config-custom"></a>

El archivo `resource.json` contiene información sobre los dispositivos que se van a utilizar como dispositivos de recursos. Los dispositivos de recursos son dispositivos que se requieren para probar ciertas capacidades de un dispositivo que se está probando. Por ejemplo, para probar la capacidad Bluetooth de un dispositivo, puede usar un dispositivo de recursos para comprobar si el dispositivo se puede conectar correctamente a él. Los dispositivos de recursos son opcionales y puede requerir tantos dispositivos de recursos como necesite. Como redactor de pruebas, utilice el [archivo test.json](idt-json-config.md#test-json) para definir las características del dispositivo de recursos que se requieren para una prueba. A continuación, los ejecutores de pruebas utilizan el archivo `resource.json` para proporcionar un grupo de dispositivos de recursos que tengan las características necesarias. Asegúrese de proporcionar esta información a los usuarios que vayan a ejecutar los conjuntos de pruebas que escriba. 

Los ejecutores de pruebas pueden proporcionar esta información mediante el siguiente archivo `resource.json` de plantilla que se encuentra en la carpeta `<device-tester-extract-location>/configs/`.

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

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

`id`  
Un ID alfanumérico definido por el usuario que identifica de forma única una colección de dispositivos que se conoce como *grupo de dispositivos*. Los dispositivos que pertenecen a un grupo deben tener idéntico hardware. Al ejecutar un conjunto de pruebas, los dispositivos del grupo se utilizan para paralelizar la carga de trabajo. Se utilizan varios dispositivos para ejecutar diferentes pruebas.

`features`  
Opcional. Una matriz que contenga las características compatibles del dispositivo. La información requerida en este campo se define en los [archivos test.json](idt-json-config.md#test-json) del conjunto de pruebas y determina qué pruebas se van a ejecutar y cómo se van a ejecutar. Si el conjunto de pruebas no requiere ninguna característica, este campo no es obligatorio.    
`features.name`  
El nombre de la característica.  
`features.version`  
La versión de la característica.  
`features.jobSlots`  
Configuración para indicar cuántas pruebas pueden utilizar el dispositivo simultáneamente. El valor predeterminado es `1`.

`devices`  <a name="device-array"></a>
Una matriz de dispositivos en el grupo que se va a probar. Se requiere al menos un dispositivo.  <a name="device-array-fields"></a>  
`devices.id`  
Un identificador único y definido por el usuario para el dispositivo que se está probando.  
`connectivity.protocol`  
El protocolo de comunicación que se usará para la comunicación con este dispositivo. Cada dispositivo de un grupo debe usar el mismo protocolo.  
Actualmente, los únicos valores que se admiten son `ssh` y `uart` para dispositivos físicos y `docker` para contenedores de Docker.  
`connectivity.ip`  
La dirección IP del dispositivo que se está probando.  
<a name="connectivity-protocol-ssh-only"></a>Esta propiedad solo se aplica si `connectivity.protocol` está establecido en `ssh`.  
`connectivity.port`  
Opcional. El número de puerto que se va a utilizar para las conexiones SSH.  
El valor predeterminado es 22.  
<a name="connectivity-protocol-ssh-only"></a>Esta propiedad solo se aplica si `connectivity.protocol` está establecido en `ssh`.  
`connectivity.auth`  
Información de autenticación para la conexión.  
<a name="connectivity-protocol-ssh-only"></a>Esta propiedad solo se aplica si `connectivity.protocol` está establecido en `ssh`.    
`connectivity.auth.method`  
El método de autenticación que se utiliza para acceder a un dispositivo a través de un determinado protocolo de conectividad.  
Los valores admitidos son:  
+ `pki`
+ `password`  
`connectivity.auth.credentials`  
Las credenciales que se utilizan para la autenticación.    
`connectivity.auth.credentials.password`  
La contraseña que se utiliza para iniciar sesión en el dispositivo que se va a probar.  
Este valor solo se aplica si `connectivity.auth.method` está establecido en `password`.  
`connectivity.auth.credentials.privKeyPath`  
La ruta completa a la clave privada que se utiliza para iniciar sesión en el dispositivo que se está probando.  
Este valor solo se aplica si `connectivity.auth.method` está establecido en `pki`.  
`connectivity.auth.credentials.user`  
El nombre de usuario para iniciar sesión en el dispositivo que se está probando.  
`connectivity.serialPort`  
Opcional. El puerto serie al que está conectado el dispositivo.  
Esta propiedad solo se aplica si `connectivity.protocol` está establecido en `uart`.  
`connectivity.containerId`  
El ID de contenedor o el nombre del contenedor de Docker que se está probando.  
<a name="connectivity-protocol-docker-only"></a>Esta propiedad solo se aplica si `connectivity.protocol` está establecido en `docker`.  
`connectivity.containerUser`  
Opcional. El nombre del usuario que se va a utilizar dentro del contenedor. El valor predeterminado es el usuario proporcionado en el Dockerfile.  
El valor predeterminado es 22.  
<a name="connectivity-protocol-docker-only"></a>Esta propiedad solo se aplica si `connectivity.protocol` está establecido en `docker`.

## (Opcional) Configuración de config.json
<a name="config-json-custom"></a>

El archivo `config.json` contiene la información de configuración para IDT. Por lo general, los corredores de pruebas no necesitarán modificar este archivo excepto para proporcionar sus credenciales de AWS usuario para IDT y, si lo desean, una AWS región. Si se proporcionan AWS las credenciales con los permisos necesarios, AWS IoT Device Tester recopila y envía las métricas de uso a. AWS Se trata de una característica opcional y se utiliza para mejorar la funcionalidad de IDT. Para obtener más información, consulte [Métricas de uso de IDT](idt-usage-metrics.md).

Los ejecutores de pruebas pueden configurar sus AWS credenciales de una de las siguientes maneras:
+ **Archivo de credenciales**

  IDT utiliza el mismo archivo de credenciales que la AWS CLI. Para obtener más información, consulte [Configuración y archivos de credenciales](https://docs.aws.amazon.com/cli/latest/userguide/cli-config-files.html).

  La ubicación del archivo de credenciales varía en función del sistema operativo que utilice:
  + macOS, Linux: `~/.aws/credentials`
  + Windows: `C:\Users\UserName\.aws\credentials`
+ **Variables de entorno**

  Las variables de entorno son las variables que mantiene el sistema operativo y utilizan los comandos del sistema. Las variables definidas durante una sesión de SSH no están disponibles una vez cerrada la sesión. IDT puede usar las variables de `AWS_SECRET_ACCESS_KEY` entorno `AWS_ACCESS_KEY_ID` y para almacenar AWS las credenciales

  Para establecer estas variables en Linux, MacOS, o Unix, utilice **export**:

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

  Para establecer estas variables en Windows, utilice **set**:

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

Para configurar AWS las credenciales de IDT, los ejecutores de pruebas editan la `auth` sección del `config.json` archivo ubicado en la `<device-tester-extract-location>/configs/` carpeta.

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

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

**nota**  
Todas las rutas de este archivo se definen en relación con. *<device-tester-extract-location>*

`log.location`  
La ruta a la carpeta de registros de*<device-tester-extract-location>*.

`configFiles.root`  
La ruta a la carpeta que contiene los archivos de configuración.

`configFiles.device`  
La ruta al archivo `device.json`.

`testPath`  
La ruta a la carpeta que contiene los conjuntos de pruebas.

`reportPath`  
La ruta a la carpeta que contendrá los resultados de las pruebas después de que IDT ejecute un conjunto de pruebas.

`awsRegion`  
Opcional. La AWS región que utilizarán las suites de pruebas. Si no se establece, los conjuntos de pruebas utilizarán la región predeterminada especificada en cada conjunto de pruebas.

`auth.method`  
El método que utiliza IDT para recuperar AWS las credenciales. Los valores admitidos son `file` para recuperar las credenciales de un archivo de credenciales y `environment` para recuperar las credenciales mediante variables de entorno.

`auth.credentials.profile`  
El perfil de credenciales que se va a utilizar del archivo de credenciales. Esta propiedad solo se aplica si `auth.method` está establecido en `file`.