Consulter les résultats et les journaux des tests IDT - Gratuit RTOS

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.

Consulter les résultats et les journaux des tests IDT

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

Format des messages de console

AWS IoT Device Tester utilise un format standard pour imprimer des messages sur la console lorsqu'elle démarre une suite de tests. L'extrait suivant montre un exemple de message de console généré par IDT.

[INFO] [2000-01-02 03:04:05]: Using suite: MyTestSuite_1.0.0 executionId=9a52f362-1227-11eb-86c9-8c8590419f30

La plupart des messages de console contiennent les champs suivants :

time

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

level

Le niveau du message pour l'événement enregistré. Généralement, le niveau du message enregistré est l'un info des suivants warn : ouerror. IDT émet un panic message fatal OR s'il rencontre un événement attendu qui entraîne sa fermeture anticipée.

msg

Le message enregistré.

executionId

Chaîne d'identification unique pour le processus IDT en cours. Cet identifiant est utilisé pour différencier les essais IDT individuels.

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é, ainsi que sur la suite de tests, le groupe de test et les scénarios de test exécutés par IDT. L'extrait suivant montre un exemple de message de console généré à partir d'une suite de tests.

[INFO] [2000-01-02 03:04:05]: Hello world! suiteId=MyTestSuitegroupId=myTestGroup testCaseId=myTestCase deviceId=my-deviceexecutionId=9a52f362-1227-11eb-86c9-8c8590419f30

La partie spécifique à la suite de tests du message de 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 scénario de test actuel.

Le résumé des tests contient des informations sur la suite de tests, les résultats des tests pour chaque groupe exécuté, ainsi que l'emplacement des journaux et des fichiers de rapport générés. L'exemple suivant montre un message récapitulatif du test.

========== 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 AWS 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 Tester schéma de rapport

awsiotdevicetester_report.xmlest un rapport signé qui contient les informations suivantes :

  • La version IDT.

  • La version de la suite de tests.

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

  • Le SKU de l'appareil et le nom du pool d'appareils spécifiés dans le device.json 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 le suite-name_report.xml 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 <awsproduct> balise

name

Nom du produit testé.

version

Version du produit testé.

features

Caractéristiques validées. Les fonctionnalités marquées comme required étant requises pour que la suite de tests valide le dispositif. L'extrait de code suivant montre comment ces informations apparaissent dans le fichier awsiotdevicetester_report.xml.

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

Les fonctionnalités marquées comme ne optional sont pas requises pour 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 la 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ésumé global 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 du rapport figurant à la fois dans le awsiotdevicetester_report.xml ou suite-name_report.xml répertorie les tests effectués et les 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 <testsuites> balise

name

Nom de la suite de tests.

time

Le temps, en secondes, nécessaire à l'exécution de 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 <testcase> balise

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>