Examiner les résultats des tests IDT et les journaux - AWS IoT Greengrass

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Examiner les résultats des tests IDT et les journaux

Cette section décrit le format dans lequel IDT génère des journaux de console et des rapports de test.

Format des messages de la console

AWS IoT Device Testerutilise un format standard pour imprimer des messages sur la console lorsqu'elle démarre une suite de tests. L'extrait suivant présente un exemple de message de console généré par 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 plupart des messages de console se composent de champs suivants :

time

Un horodatage ISO 8601 complet pour l'événement enregistré.

level

Niveau de message pour l'événement enregistré. En règle générale, le niveau de message enregistré est l'un des éléments suivants :info,warn, ouerror. L'IDT émet unfataloupanicmessage s'il rencontre un événement attendu qui provoque sa fermeture anticipée.

msg

Le message enregistré.

executionId

Chaîne d'identification unique pour le processus IDT actuel. Cet ID est utilisé pour différencier les exécutions IDT individuelles.

Les messages de console générés à partir d'une suite de tests fournissent des informations supplémentaires sur le périphérique testé et sur la suite de tests, le groupe de tests et les cas de test exécutés par IDT. L'extrait suivant illustre un exemple de message de console généré à partir d'une suite de tests.

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 partie spécifique de la suite de tests du message de la console contient les champs suivants :

suiteId

Nom de la suite de tests en cours d'exécution.

groupId

ID du groupe de test en cours d'exécution.

testCaseId

L'ID du scénario de test en cours d'exécution.

deviceId

Identifiant de l'appareil testé utilisé par le cas de test actuel.

Pour imprimer un résumé de test sur la console lorsqu'un IDT a terminé d'exécuter un test, vous devez inclure unReportétatdans votre orchestrateur de test. Le récapitulatif des tests contient des informations sur la suite de tests, les résultats des tests pour chaque groupe exécuté et les emplacements des journaux et des fichiers de rapport générés. L'exemple suivant montre un message de récapitulatif des tests.

========== 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 Testerschéma de rapport

awsiotdevicetester_report.xmlest un rapport signé contenant les informations suivantes :

  • La version IDT.

  • Versions de suite de tests.

  • Signature et clé du rapport utilisées pour signer le rapport.

  • La référence de l'appareil et le nom du groupe d'appareils spécifié dans ladevice.jsondans le fichier.

  • La version du produit et les fonctionnalités de l'appareil testées.

  • Le récapitulatif des résultats des tests. Ces informations sont les mêmes que celles contenues dans lesuite-name_report.xmldans le fichier.

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

Le fichier awsiotdevicetester_report.xml contient une balise <awsproduct> qui contient des informations relatives au produit testé et les caractéristiques du produit qui ont été validées par une suite de tests.

Attributs utilisés dans la balise <awsproduct>
name

Nom du produit testé.

version

Version du produit testé.

features

Caractéristiques validées. Caractéristiques marquées commerequiredsont nécessaires pour que la suite de tests puisse valider le périphérique. L'extrait de code suivant montre comment ces informations apparaissent dans le fichier awsiotdevicetester_report.xml.

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

Caractéristiques marquées commeoptionalne sont pas nécessaires à la validation. Les extraits suivants illustrent des fonctions facultatives.

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

Schéma de rapport de suite de tests

Le rapport suite-name_Result.xml est au format JUnit XML. Vous pouvez intégrer des plateformes de déploiement/d'intégration continues tels que Jenkins, Bamboo, etc. Le rapport contient un récapitulatif des résultats des tests.

<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 section Rapport dans les deuxawsiotdevicetester_report.xmlousuite-name_report.xmlrépertorie les tests qui ont été exécutés et leurs résultats.

La première balise XML <testsuites> contient le résumé de l'exécution des tests. Par exemple :

<testsuites name="MyTestSuite results" time="2299" tests="28" failures="0" errors="0" disabled="0">
Attributs utilisés dans la balise <testsuites>
name

Nom de la suite de tests.

time

Durée, en secondes, nécessaire pour exécuter la suite de tests.

tests

Nombre de tests exécutés.

failures

Nombre de tests exécutés mais dont le résultat n'est pas probant.

errors

Nombre de tests qu'IDT n'a pas pu exécuter.

disabled

Cet attribut n'est pas utilisé et peut être ignoré.

En cas d'erreurs ou d'échecs de tests, vous pouvez identifier les tests concernés à l'aide des balises XML <testsuites>. Les balises XML <testsuite> au sein de la balise <testsuites> montrent le récapitulatif des résultats d'un groupe de tests. Par exemple :

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

Le format est similaire à la balise <testsuites>, mais avec un attribut appelé skipped qui n'est pas utilisé et qui ne peut pas être ignoré. Chaque balise XML <testsuite> inclut des balises <testcase> pour chaque test exécuté pour un groupe de tests. Par exemple :

<testcase classname="Security Test" name="IP Change Tests" attempts="1"></testcase>>
Attributs utilisés dans la balise <testcase>
name

Nom du test.

attempts

Nombre de fois où IDT a exécuté le test.

Lorsqu'un test échoue ou qu'une erreur se produit, les balises <failure> ou <error> sont ajoutées à la balise <testcase> avec des informations relatives au dépannage. Par exemple :

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