Configurar el orquestrador de pruebas 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.

Configurar el orquestrador de pruebas IDT

A partir de IDT v4.5.1, IDT incluye un nuevoorquestación de pruebascomponente. El orquestrador de pruebas es un componente IDT que controla el flujo de ejecución del conjunto de pruebas y genera el informe de pruebas después de que IDT finalice la ejecución de todas las pruebas. El orquestrador de pruebas determina la selección de pruebas y el orden en que se ejecutan las pruebas según las reglas definidas por el usuario.

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

El orquestación de pruebas predeterminado realiza las siguientes funciones:

  • Ofrece a los ejecutores de pruebas la capacidad 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 de prueba y caso de prueba.

El orquestador de pruebas reemplaza al orquestador de pruebas IDT. Le recomendamos encarecidamente que utilice el orquestrador de pruebas para desarrollar sus conjuntos de pruebas en lugar del orquestador de pruebas IDT. El orquestrador de pruebas proporciona las siguientes funciones mejoradas:

  • Utiliza un formato declarativo en comparación con el formato imperativo que utiliza la máquina de estado IDT. Esto le permiteespecificarqué pruebas quieres ejecutar ycuandoquieres dirigirlos.

  • Gestiona el manejo de grupos específicos, la generación de informes, el tratamiento de errores y el seguimiento de resultadospara que no se te requierapara administrar manualmente estas acciones.

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

  • requiere80 por cientomenos espacio en disco que el orquestador de pruebas para definir el mismo flujo de trabajo.

  • Añade validación previa a la prueba para verificar que la definición de flujo de trabajo no contiene identificadores de prueba incorrectos ni dependencias circulares.

Formato orquestador de pruebas

Puede utilizar la siguiente plantilla para configurar la suya propia<custom-test-suite-folder>/suite/test_orchestrator.yamlfile:

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 permiten generar nombres descriptivos paraidentificar expresiones de contexto en la configuración del orquestrador de pruebas. Esto es especialmente útil si está creando expresiones de contexto complejas o expresiones que utiliza en varios lugares.

Puede utilizar expresiones de contexto para almacenar consultas de contexto que le permiten acceder a datos de otras configuraciones de IDT. Para obtener más información, consulte Acceda a los datos en el contexto.

ejemplo 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 afecció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 prueba del conjunto de pruebas.

Cada artículo delConditionalTestslist incluye los siguientes parámetros:

Condition

Una expresión de contexto que tiene el valor debooleanoValor . Si el valor evaluado es verdadero, IDT ejecuta los casos de prueba especificados en elTestsparámetro.

Tests

La lista de descriptores de prueba.

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

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

En el siguiente ejemplo se utilizan expresiones de contexto genéricas que se pueden definir comoAliases.

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:

  • SiCondition1es cierto, IDT realiza las pruebas en los grupos de prueba A, B y C.

  • SiCondition2es cierto, IDT ejecuta las pruebas en los grupos de prueba C y D.

Order

Opcional. El orden en que se ejecutan las pruebas. El orden de prueba se especifica en el nivel del grupo de pruebas. Si no especifica esta sección, IDT ejecuta todos los grupos de pruebas aplicables en orden aleatorio. El valor deOrderes una lista de listas de descriptores de grupo. Cualquier grupo de prueba en el que no incluyas la listaOrder, se puede ejecutar en parallel con cualquier otro grupo de prueba de la lista.

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

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

  • [group-id, group-id]: lista de grupos de pruebas que se pueden ejecutar en cualquier orden en relación entre sí.

  • "*"—comodín. Esto equivale a la lista de todos los grupos de prueba que aún no se han especificado en la lista de descriptores de grupos actual.

El valor deOrderdebe cumplir también los siguientes requisitos:

  • Los ID de grupo de pruebas especificados en un descriptor de grupo deben existir en el conjunto de pruebas.

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

  • Cada lista de descriptores de grupo debe contener identificadores de grupo únicos. No se puede repetir un ID de grupo de pruebas dentro de los descriptores de grupo individuales.

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

ejemplo Ejemplos

Para un conjunto de pruebas que contiene grupos de pruebas A, B, C, D y E, en la siguiente lista de ejemplos se muestran diferentes formas de especificar que IDT debe ejecutar primero el grupo de pruebas A, luego ejecutar el grupo de pruebas B y, a continuación, ejecutar los grupos de prueba 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 características del producto que desea que IDT agregue alawsiotdevicetester_report.xmlfile. Si no especificas esta sección, IDT no añadirá ninguna característica del producto al informe.

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

Cada artículo delFeatureslist consta de los siguientes parámetros:

Name

El nombre de la característica.

Value

Opcional. El valor personalizado que desea utilizar en el informe en lugar desupported. Si no se especifica este valor, IDT basado establece el valor de la entidad ensupportedonot-supportedbasado en los resultados de pruebas. Si prueba la misma función con condiciones diferentes, puede utilizar un valor personalizado para cada instancia de esa entidad en elFeaturese IDT concatena los valores de entidad para las condiciones admitidas. Para obtener más información, consulte

Condition

Una expresión de contexto que tiene el valor debooleanoValor . Si el valor evaluado es verdadero, IDT añade la función al informe de prueba una vez finalizado la ejecución del grupo de pruebas. Si el valor evaluado es falso, la prueba no se incluye en el informe.

Tests

Opcional. La lista de descriptores de prueba. Todas las pruebas especificadas en esta lista deben pasar para que se admita la función.

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

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

Debe especificarTestsoOneOfTestspara cada función delFeatureslista.

OneOfTests

Opcional. La lista de descriptores de prueba. Debe pasar al menos una de las pruebas especificadas en esta lista para que se admita la función.

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

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

Debe especificarTestsoOneOfTestspara cada función delFeatureslista.

IsRequired

El valor booleano que define si la función es necesaria en el informe de prueba. El valor predeterminado es false.

Contexto de orquestación de prueba

El contexto del orquestrador de pruebas es un documento JSON de solo lectura que contiene datos disponibles para el orquestador de pruebas durante la ejecución. El contexto del orquestrador de pruebas solo es accesible desde el orquestador de pruebas y contiene información que determina el flujo de pruebas. Por ejemplo, puede utilizar la información configurada por los ejecutores de pruebas en eluserdata.jsonpara determinar si se requiere una prueba específica para ejecutarse.

El contexto del orquestación 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 prueba. Para un grupo de dispositivos seleccionado, esta información se recupera del elemento de matriz de grupos de dispositivos de nivel superior correspondiente definido en eldevice.jsonfile.

userData

Información de en lauserdata.jsonfile.

config

Información de en laconfig.jsonfile.

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

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