Configura el orquestador IDT de pruebas - Gratis RTOS

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.

Configura el orquestador IDT de pruebas

A partir de la IDT versión 4.5.2, IDT incluye un nuevo componente de orquestador de pruebas. El orquestador de pruebas es un IDT componente que controla el flujo de ejecución del conjunto de pruebas y genera el informe de la prueba una vez IDT finalizada la ejecución de todas las pruebas. El orquestador de pruebas determina la selección de las pruebas y el orden en que se ejecutan en función de las reglas definidas por el usuario.

Si tu conjunto de pruebas no incluye un orquestador de pruebas definido por el usuario, IDT generará uno para ti.

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

El orquestador de pruebas reemplaza a la máquina de estados. IDT Le recomendamos encarecidamente que utilice el orquestador de pruebas para desarrollar sus conjuntos de pruebas en lugar de la máquina de IDT estados. El orquestador de pruebas ofrece las siguientes características mejoradas:

  • Utiliza un formato declarativo en comparación con el formato imperativo que utiliza la máquina de IDT estados. Esto le permite especificar qué pruebas desea ejecutar y cuándo quiere ejecutarlas.

  • Administra la gestión de grupos específicos, la generación de informes, la gestión de errores y el seguimiento de los resultados para que no tenga que gestionar estas acciones manualmente.

  • Utiliza el YAML formato, que admite comentarios de forma predeterminada.

  • Requiere un 80 por ciento menos de espacio en disco que el orquestador de pruebas para definir el mismo flujo de trabajo.

  • Añade una validación previa a las pruebas para comprobar que la definición del flujo de trabajo no contiene dependencias circulares IDs o de pruebas incorrectas.

Formato del orquestador de pruebas

Puede utilizar la siguiente plantilla para configurar su propio archivo custom-test-suite-folder/suite/test_orchestrator.yaml:

Aliases: string: context-expression ConditionalTests: - Condition: context-expression Tests: - test-descriptor Order: - - group-descriptor - group-descriptor Features: - Name: feature-name Value: support-description Condition: context-expression Tests: - test-descriptor OneOfTests: - test-descriptor IsRequired: boolean

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

Aliases

Opcional. Cadenas definidas por el usuario que se asignan a expresiones de contexto. Los alias le permiten generar nombres descriptivos para identificar las expresiones de contexto en la configuración de su orquestador de pruebas. Esto resulta especialmente útil si está creando expresiones contextuales complejas o expresiones que utiliza en varios lugares.

Puede usar expresiones de contexto para almacenar consultas de contexto que le permitan acceder a los datos de otras IDT configuraciones. Para obtener más información, consulte Acceso a los datos del contexto.

Ejemplo

Aliases: FizzChosen: "'{{$pool.features[?(@.name == 'Fizz')].value[0]}}' == 'yes'" BuzzChosen: "'{{$pool.features[?(@.name == 'Buzz')].value[0]}}' == 'yes'" FizzBuzzChosen: "'{{$aliases.FizzChosen}}' && '{{$aliases.BuzzChosen}}'"
ConditionalTests

Opcional. Una lista de condiciones y los casos de prueba correspondientes que se ejecutan cuando se cumple cada condición. Cada condición puede tener varios casos de prueba; sin embargo, puede asignar un caso de prueba determinado a una sola condición.

De forma predeterminada, IDT ejecuta cualquier caso de prueba que no esté asignado a una condición de esta lista. Si no especifica esta sección, IDT ejecuta todos los grupos de pruebas del conjunto de pruebas.

Cada elemento de la lista ConditionalTests incluye los siguientes parámetros:

Condition

Una expresión de contexto que se evalúa como un valor booleano. Si el valor evaluado es verdadero, IDT ejecuta los casos de prueba que se especifican en el Tests parámetro.

Tests

La lista de descriptores de prueba.

Cada descriptor de prueba utiliza el ID del grupo de pruebas y uno o más casos de prueba IDs para identificar las pruebas individuales que se van a ejecutar en un grupo de pruebas específico. El descriptor de la prueba utiliza el siguiente formato:

GroupId: group-id CaseIds: [test-id, test-id] # optional

Ejemplo

En el siguiente ejemplo se utilizan expresiones de contexto genéricas que puede definir como Aliases.

ConditionalTests: - Condition: "{{$aliases.Condition1}}" Tests: - GroupId: A - GroupId: B - Condition: "{{$aliases.Condition2}}" Tests: - GroupId: D - Condition: "{{$aliases.Condition1}} || {{$aliases.Condition2}}" Tests: - GroupId: C

En función de las condiciones definidas, IDT selecciona los grupos de prueba de la siguiente manera:

  • Si Condition1 es cierto, IDT ejecuta las pruebas en los grupos de prueba A, B y C.

  • Si Condition2 es verdadero, IDT ejecuta las pruebas en los grupos de prueba C y D.

Order

Opcional. El orden en que se deben ejecutar las pruebas. El orden de las pruebas se especifica a nivel de grupo de pruebas. Si no especifica esta sección, IDT ejecuta todos los grupos de prueba aplicables en orden aleatorio. El valor de Order es una lista de listas de descriptores de grupos. Cualquier grupo de pruebas que no incluya en la lista Order se puede ejecutar en paralelo con cualquier otro grupo de pruebas de la lista.

Cada lista de descriptores de grupo contiene uno o más descriptores de grupo e identifica el orden en el que se deben ejecutar los grupos que se especifican en cada descriptor. Puede utilizar los siguientes formatos para definir descriptores de grupos individuales:

  • group-id: el ID de grupo de un grupo de pruebas existente.

  • [group-id, group-id]: lista de grupos de pruebas que se pueden ejecutar en cualquier orden relativo.

  • "*": comodín. Esto equivale a la lista de todos los grupos de pruebas que aún no están especificados en la lista de descriptores de grupos actual.

El valor de Order también debe cumplir los siguientes requisitos:

  • El grupo de prueba IDs que especifique en un descriptor de grupo debe existir en su conjunto de pruebas.

  • Cada lista de descriptores de grupos debe incluir al menos un grupo de pruebas.

  • Cada lista de descriptores de grupo debe contener un grupo único. IDs No puede repetir el ID de un grupo de pruebas dentro de los descriptores de grupos individuales.

  • Una lista de descriptores de grupo puede tener como máximo un descriptor de grupo comodín. El descriptor de grupo comodín debe ser el primer o el último elemento de la lista.

Ejemplo

En el caso de un conjunto de pruebas que contiene los grupos de pruebas A, B, C, D y E, en la siguiente lista de ejemplos, se muestran diferentes formas de especificar que se IDT debe ejecutar primero el grupo de pruebas A, después el grupo de pruebas B y, por último, los grupos de pruebas C, D y E en cualquier orden.

  • Order: - - A - B - [C, D, E]
  • Order: - - A - B - "*"
  • Order: - - A - B - - B - C - - B - D - - B - E
Features

Opcional. La lista de funciones del producto que IDT desea añadir al awsiotdevicetester_report.xml archivo. Si no especificas esta sección, IDT no añadirá ninguna característica del producto al informe.

Una característica del producto es información definida por el usuario sobre los criterios específicos que puede cumplir un dispositivo. Por ejemplo, la función MQTT del producto puede indicar que el dispositivo publica MQTT los mensajes correctamente. En awsiotdevicetester_report.xml, las características del producto se establecen como supported, not-supported o como un valor personalizado, en función de si se han superado las pruebas especificadas.

Cada elemento de la lista Features incluye los siguientes parámetros:

Name

El nombre de la característica.

Value

Opcional. El valor personalizado que desea utilizar en el informe en lugar de supported. Si no se especifica este valor, Based IDT establece el valor de la función en supported o en not-supported función de los resultados de las pruebas. Si prueba la misma entidad con condiciones diferentes, puede utilizar un valor personalizado para cada instancia de esa entidad de la Features lista y IDT concatenar los valores de la entidad según las condiciones admitidas. Para obtener más información, consulte

Condition

Una expresión de contexto que se evalúa como un valor booleano. Si el valor evaluado es verdadero, IDT agrega la función al informe de prueba cuando termine de ejecutar el conjunto de pruebas. Si el valor evaluado es falso, la prueba no se incluye en el informe.

Tests

Opcional. La lista de descriptores de prueba. Para que la característica sea compatible, se deben superar todas las pruebas especificadas en esta lista.

Cada descriptor de prueba de esta lista utiliza el ID del grupo de pruebas y uno o más casos de prueba IDs para identificar las pruebas individuales que se van a ejecutar en un grupo de pruebas específico. El descriptor de la prueba utiliza el siguiente formato:

GroupId: group-id CaseIds: [test-id, test-id] # optional

Debe especificar Tests o OneOfTests para cada característica de la lista Features.

OneOfTests

Opcional. La lista de descriptores de prueba. Para que la característica sea compatible, se debe superar al menos una de las pruebas especificadas en esta lista.

Cada descriptor de prueba de esta lista utiliza el ID del grupo de pruebas y uno o más casos de prueba IDs para identificar las pruebas individuales que se van a ejecutar en un grupo de pruebas específico. El descriptor de la prueba utiliza el siguiente formato:

GroupId: group-id CaseIds: [test-id, test-id] # optional

Debe especificar Tests o OneOfTests para cada característica de la lista Features.

IsRequired

El valor booleano que define si la característica es obligatoria en el informe de prueba. El valor predeterminado es false.

Contexto del orquestador de pruebas

El contexto del orquestador de pruebas es un JSON documento de solo lectura que contiene datos que están disponibles para el orquestador de pruebas durante la ejecución. Solo se puede acceder al contexto del orquestador de pruebas desde el orquestador de pruebas y contiene información que determina el flujo de prueba. Por ejemplo, puede usar la información configurada por los ejecutores de la prueba en el archivo userdata.json para determinar si es necesario ejecutar una prueba específica.

El contexto del orquestador de pruebas utiliza el siguiente formato:

{ "pool": { <device-json-pool-element> }, "userData": { <userdata-json-content> }, "config": { <config-json-content> } }
pool

Información sobre el grupo de dispositivos seleccionado para la ejecución de la prueba. Para un grupo de dispositivos seleccionados, esta información se recupera del elemento correspondiente de la matriz del grupo de dispositivos de alto nivel definido en el archivo device.json.

userData

Información en el archivo userdata.json.

config

Información en el archivo config.json.

Puede consultar el contexto mediante la notación. JSONPath La sintaxis de las JSONPath consultas en las definiciones de estado es{{query}}. Al acceder a los datos desde el contexto del orquestador de pruebas, asegúrese de que cada valor se evalúe como una cadena, un número o un booleano.

Para obtener más información sobre el uso de la JSONPath notación para acceder a los datos del contexto, consulteUsa el IDT contexto.