Configure los ajustes para los ejecutores de pruebas - AWS IoT Greengrass

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.

Configure los ajustes para los ejecutores de pruebas

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 que se encuentran en la carpeta <device-tester-extract-location>/configs/. Si es necesario, los ejecutores de las pruebas también deben configurar las credenciales de AWS que IDT utilizará para conectarse a la nube de AWS.

Como redactor de pruebas, necesitará configurar estos archivos para depurar su conjunto de pruebas. 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

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

nota

Si desea enumerar la placa en el catálogo de dispositivos de AWS Partner, el SKU que especifique aquí debe coincidir con el SKU que utilice 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 del contexto de IDT con la devicePool.features consulta o del contexto del orquestador de pruebas con la pool.features consulta.

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.

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.

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.

Esta propiedad solo se aplica si connectivity.protocol está establecido en ssh.

connectivity.auth

Información de autenticación para la conexión.

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.

Esta propiedad solo se aplica si connectivity.protocol está establecido en ssh.

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.

Esta propiedad solo se aplica si connectivity.protocol está establecido en ssh.

nota

Para comprobar si los ejecutores de la prueba configuran la conexión de dispositivo incorrecta para una prueba, puedes consultarla pool.Devices[0].Connectivity.Protocol desde el contexto del orquestador de pruebas y compararla 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

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

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 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 funciones 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-version>", "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 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

Una matriz de dispositivos en el grupo que se va a probar. Se requiere al menos un dispositivo.

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.

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.

Esta propiedad solo se aplica si connectivity.protocol está establecido en ssh.

connectivity.auth

Información de autenticación para la conexión.

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.

Esta propiedad solo se aplica si connectivity.protocol está establecido en ssh.

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.

Esta propiedad solo se aplica si connectivity.protocol está establecido en ssh.

(Opcional) Configuración de config.json

El archivo config.json contiene la información de configuración para IDT. Por lo general, los ejecutores de pruebas no necesitarán modificar este archivo excepto para proporcionar sus credenciales de usuario de AWS para IDT y, opcionalmente, una región de AWS. Si se proporcionan las credenciales de AWS 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 que se utiliza para mejorar la funcionalidad de IDT. Para obtener más información, consulte Métricas de uso de IDT.

Los ejecutores de pruebas pueden configurar sus credenciales de AWS 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 Archivos de configuración y credenciales.

    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 entorno AWS_ACCESS_KEY_ID y AWS_SECRET_ACCESS_KEY para almacenar sus credenciales de AWS.

    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 las credenciales de AWS para IDT, los ejecutores de pruebas editan la sección auth del archivo config.json ubicado en la carpeta <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>" } } } ]

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 la carpeta < 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 región de AWS que utilizarán los conjuntos 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 IDT utiliza para recuperar las credenciales de AWS. 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.