Revisar los resultados y registros de las 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.

Revisar los resultados y registros de las pruebas IDT

En esta sección se describe el formato en que IDT genera registros de consola e informes de prueba.

Formato de mensajes de consola

AWS IoT Device Testerutiliza un formato estándar para imprimir mensajes en la consola cuando inicia un conjunto de pruebas. En el fragmento siguiente, se muestra un ejemplo de un mensaje de consola generado por IDT.

time="2000-01-02T03:04:05-07:00" level=info msg=Using suite: MyTestSuite_1.0.0 executionId=9a52f362-1227-11eb-86c9-8c8590419f30

La mayoría de los mensajes de consola constan de los campos siguientes:

time

Marca de hora ISO 8601 completa para el evento registrado.

level

Nivel de mensaje del evento registrado. Normalmente, el nivel de mensajes registrados es uno de losinfo,warn, o bienerror. El IDT emite unfatalopanicmensaje si encuentra un evento esperado que hace que salga antes de tiempo.

msg

El mensaje registrado.

executionId

Cadena de ID exclusiva para el proceso IDT actual. Este ID se utiliza para diferenciar entre ejecuciones IDT individuales.

Los mensajes de consola generados a partir de un conjunto de pruebas proporcionan información adicional sobre el dispositivo en prueba y el conjunto de pruebas, el grupo de pruebas y los casos de prueba que IDT ejecuta. En el siguiente extracto se muestra un ejemplo de un mensaje de consola generado a partir de un conjunto de pruebas.

time="2000-01-02T03:04:05-07:00" level=info msg=Hello world! suiteId=MyTestSuite groupId=myTestGroup testCaseId=myTestCase deviceId=my-device executionId=9a52f362-1227-11eb-86c9-8c8590419f30

La parte específica del conjunto de pruebas del mensaje de la consola contiene los siguientes campos:

suiteId

El nombre del conjunto de pruebas que se está ejecutando actualmente.

groupId

ID del grupo de prueba que se está ejecutando actualmente.

testCaseId

El ID del caso de prueba que se está ejecutando.

deviceId

Identificador del dispositivo que se está probando que está utilizando el caso de prueba actual.

Para imprimir un resumen de prueba en la consola cuando un IDT termina de ejecutar una prueba, debe incluir unReportstateen tu orquestador de pruebas. El resumen de la prueba contiene información sobre el conjunto de pruebas, los resultados de las pruebas de cada grupo que se ha ejecutado y las ubicaciones de los registros generados y los archivos de informe. En el siguiente ejemplo se muestra un mensaje de resumen de prueba.

========== Test Summary ========== Execution Time: 5m00s Tests Completed: 4 Tests Passed: 3 Tests Failed: 1 Tests Skipped: 0 ---------------------------------- Test Groups: GroupA: PASSED GroupB: FAILED ---------------------------------- Failed Tests: Group Name: GroupB Test Name: TestB1 Reason: Something bad happened ---------------------------------- Path to IoT Device Tester Report: /path/to/awsiotdevicetester_report.xml Path to Test Execution Logs: /path/to/logs Path to Aggregated JUnit Report: /path/to/MyTestSuite_Report.xml

AWS IoT Device TesterEsquema de informe

awsiotdevicetester_report.xmles un informe firmado que contiene la siguiente información:

  • La versión de IDT.

  • La versión del conjunto de pruebas.

  • Firma del informe y clave utilizadas para firmar el informe.

  • El SKU del dispositivo y el grupo de dispositivos especificado endevice.jsonfile.

  • La versión del producto y las características del dispositivo probadas.

  • El resumen de agregación de los resultados de las pruebas. Esta información es la misma que la contenida en elsuite-name_report.xmlfile.

<apnreport> <awsiotdevicetesterversion>idt-version</awsiotdevicetesterversion> <testsuiteversion>test-suite-version</testsuiteversion> <signature>signature</signature> <keyname>keyname</keyname> <session> <testsession>execution-id</testsession> <starttime>start-time</starttime> <endtime>end-time</endtime> </session> <awsproduct> <name>product-name</name> <version>product-version</version> <features> <feature name="<feature-name>" value="supported | not-supported | <feature-value>" type="optional | required"/> </features> </awsproduct> <device> <sku>device-sku</sku> <name>device-name</name> <features> <feature name="<feature-name>" value="<feature-value>"/> </features> <executionMethod>ssh | uart | docker</executionMethod> </device> <devenvironment> <os name="<os-name>"/> </devenvironment> <report> <suite-name-report-contents> </report> </apnreport>

El archivo awsiotdevicetester_report.xml contiene una etiqueta <awsproduct> que tiene información sobre el producto que se está probando y las características del producto que se han validado después de ejecutar un conjunto de pruebas.

Atributos que se utilizan en la etiqueta <awsproduct>
name

El nombre del producto que se está probando.

version

La versión del producto que se está probando.

features

Las características validadas. Funciones marcadas comorequiredson necesarios para que el conjunto de pruebas valide el dispositivo. En el siguiente fragmento se muestra cómo aparece esta información en el archivo awsiotdevicetester_report.xml:

<feature name="ssh" value="supported" type="required"></feature>

Funciones marcadas comooptionalno son necesarios para la validación. Los siguientes fragmentos muestran características opcionales:

<feature name="hsi" value="supported" type="optional"></feature>
 <feature name="mqtt" value="not-supported" type="optional"></feature>

Esquema de informe del grupo de pruebas

El informe suite-name_Result.xml está en formato XML JUnit. Puede integrarlo en plataformas de integración/implementación continua como Jenkins, Bamboo, etc. El informe contiene un resumen de agregación de los resultados de pruebas.

<testsuites name="<suite-name> results" time="<run-duration>" tests="<number-of-test>" failures="<number-of-tests>" skipped="<number-of-tests>" errors="<number-of-tests>" disabled="0"> <testsuite name="<test-group-id>" package="" tests="<number-of-tests>" failures="<number-of-tests>" skipped="<number-of-tests>" errors="<number-of-tests>" disabled="0"> <!--success--> <testcase classname="<classname>" name="<name>" time="<run-duration>"/> <!--failure--> <testcase classname="<classname>" name="<name>" time="<run-duration>"> <failure type="<failure-type>"> reason </failure> </testcase> <!--skipped--> <testcase classname="<classname>" name="<name>" time="<run-duration>"> <skipped> reason </skipped> </testcase> <!--error--> <testcase classname="<classname>" name="<name>" time="<run-duration>"> <error> reason </error> </testcase> </testsuite> </testsuites>

La sección de informes de ambosawsiotdevicetester_report.xmlosuite-name_report.xmlEnumera las pruebas que se ejecutaron y los resultados.

La primera etiqueta XML <testsuites> contiene el resumen de la ejecución de las pruebas. Por ejemplo:

<testsuites name="MyTestSuite results" time="2299" tests="28" failures="0" errors="0" disabled="0">
Atributos que se utilizan en la etiqueta <testsuites>
name

El nombre del grupo de prueba.

time

El tiempo, en segundos, que se ha tardado en ejecutar el conjunto de pruebas.

tests

El número de pruebas ejecutadas.

failures

El número de pruebas que se ejecutaron, pero que no se superaron.

errors

El número de pruebas que IDT no ha podido ejecutar.

disabled

Este atributo no se utiliza y se puede omitir.

Si se producen errores en pruebas, puede identificar la prueba fallido revisando las etiquetas XML <testsuites>. Las etiquetas XML <testsuite> dentro de la etiqueta <testsuites> muestran el resumen del resultado de la prueba de un grupo de prueba. Por ejemplo:

<testsuite name="combination" package="" tests="1" failures="0" time="161" disabled="0" errors="0" skipped="0">

El formato es similar a la etiqueta <testsuites>, pero con un atributo skipped que no se utiliza y que se puede pasar por alto. Dentro de cada etiqueta XML <testsuite>, hay etiquetas <testcase> para cada prueba ejecutada para un grupo de prueba. Por ejemplo:

<testcase classname="Security Test" name="IP Change Tests" attempts="1"></testcase>>
Atributos que se utilizan en la etiqueta <testcase>
name

El nombre de la prueba.

attempts

El número de veces que IDT ha ejecutado el caso de prueba.

Cuando una prueba genera un error o si se produce un error, las etiquetas <failure> o <error> se añaden a la etiqueta <testcase> con información para la resolución de problemas. Por ejemplo:

<testcase classname="mcu.Full_MQTT" name="MQTT_TestCase" attempts="1"> <failure type="Failure">Reason for the test failure</failure> <error>Reason for the test execution error</error> </testcase>