Creación de archivos de configuración para el conjunto de pruebas de IDT - 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.

Creación de archivos de configuración para el conjunto de pruebas de IDT

En esta sección se describen los formatos en los que se crean los archivos de configuración que se incluyen al escribir un conjunto de pruebas personalizado.

Archivos de configuración necesarios
suite.json

Contiene información sobre el conjunto de pruebas. Consulte Configuración de suite.json.

group.json

Contiene información sobre un grupo de pruebas. Debe crear un archivo group.json para cada grupo de pruebas del conjunto de pruebas. Consulte Configuración de 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.

Archivos de configuración opcionales
test_orchestrator.yaml o state_machine.json

Define cómo se ejecutan las pruebas cuando IDT ejecuta el conjunto de pruebas. Consulte Configuración de test_orchestrator.yaml.

nota

A partir de IDT v4.5.1, se utiliza el test_orchestrator.yaml archivo para definir el flujo de trabajo de la prueba. En las versiones anteriores de IDT, se utiliza el archivo state_machine.json. Para obtener más información sobre la máquina de estados, consulte Configurar el equipo de estado IDT.

userdata_schema.json

Define el esquema del archivo userdata.json 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_schema.json.

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

<custom-test-suite-folder> └── suite ├── suite.json ├── test_orchestrator.yaml ├── userdata_schema.json ├── <test-group-folder> ├── group.json ├── <test-case-folder> └── test.json

Configuración de suite.json

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 las pruebas.

details

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

userDataRequired

Define si los ejecutores de las 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 en la carpeta del conjunto de pruebas.

environmentVariables

Opcional. Una matriz de variables de entorno que se va a establecer 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

El archivo group.json define si un grupo de pruebas 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 ID ú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 group.json archivo y no puede contener guiones bajos (). _ El ID 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 las 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

El test.json archivo 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.

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 ID único definido por el usuario para el caso de prueba. El valor de id debe coincidir con el nombre de la carpeta del caso de prueba en la que se encuentra el test.json archivo y no puede contener guiones bajos ()_. El ID se utiliza en los informes de pruebas 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 las 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.

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.

nota

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 test_orchestrator.yaml

Un orquestador de pruebas es un constructo que controla el flujo de ejecución del conjunto de pruebas. Determina el estado inicial de un conjunto de pruebas, gestiona 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 un orquestador de pruebas definido por el usuario, IDT generará un orquestador de pruebas para usted.

El orquestador de pruebas predeterminado 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 en orden aleatorio.

  • 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 el orquestador de pruebas, consulte Configurar el orquestrador de pruebas IDT.

Configuración de userdata_schema.json

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 denominadouserdata, 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.

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

  3. Edite el archivo userdata_schema.json para crear un borrador del esquema JSON v4 de IETF 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 de IDT como en el contexto del orquestador de pruebas.