Überprüfen Sie die IDT-Testergebnisse und -Protokolle - Kostenlos RTOS

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Überprüfen Sie die IDT-Testergebnisse und -Protokolle

In diesem Abschnitt wird das Format beschrieben, in dem IDT Konsolenprotokolle und Testberichte generiert.

Nachrichtenformat der Konsole

AWS IoT Device Tester verwendet ein Standardformat für das Drucken von Nachrichten auf der Konsole, wenn eine Testsuite gestartet wird. Der folgende Auszug zeigt ein Beispiel für eine von IDT generierte Konsolennachricht.

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

Die meisten Konsolennachrichten bestehen aus den folgenden Feldern:

time

Ein vollständiger ISO 8601-Zeitstempel für das protokollierte Ereignis.

level

Die Nachrichtenebene für das protokollierte Ereignis. In der Regel ist die Ebene der protokollierten Nachricht eine von infowarn, odererror. IDT gibt eine fatal panic OR-Nachricht aus, wenn es auf ein erwartetes Ereignis trifft, das dazu führt, dass es vorzeitig beendet wird.

msg

Die protokollierte Nachricht.

executionId

Eine eindeutige ID-Zeichenfolge für den aktuellen IDT-Prozess. Diese ID wird verwendet, um zwischen einzelnen IDT-Läufen zu unterscheiden.

Von einer Testsuite generierte Konsolennachrichten enthalten zusätzliche Informationen über das zu testende Gerät und die Testsuite, Testgruppe und Testfälle, die IDT ausführt. Der folgende Auszug zeigt ein Beispiel für eine Konsolennachricht, die aus einer Testsuite generiert wurde.

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

Der für die Testsuite spezifische Teil der Konsolennachricht enthält die folgenden Felder:

suiteId

Der Name der Testsuite, die gerade läuft.

groupId

Die ID der Testgruppe, die gerade läuft.

testCaseId

Die ID des aktuell laufenden Testfalls.

deviceId

Eine ID des zu testenden Geräts, das der aktuelle Testfall verwendet.

Die Testzusammenfassung enthält Informationen über die Testsuite, die Testergebnisse für jede Gruppe, die ausgeführt wurde, und die Speicherorte der generierten Protokolle und Berichtsdateien. Das folgende Beispiel zeigt eine Meldung mit einer Testzusammenfassung.

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

awsiotdevicetester_report.xmlist ein signierter Bericht, der die folgenden Informationen enthält:

  • Die IDT-Version.

  • Die Version der Testsuite.

  • Die Berichtssignatur und der Schlüssel, die zum Signieren des Berichts verwendet wurden.

  • Die Geräte-SKU und der Name des Gerätepools, die in der device.json Datei angegeben sind.

  • Die Produktversion und die getesteten Gerätefunktionen.

  • Die aggregierte Zusammenfassung der Testergebnisse. Diese Informationen entsprechen denen, die in der suite-name_report.xml Datei enthalten sind.

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

Die Datei awsiotdevicetester_report.xml enthält ein <awsproduct>-Tag mit Informationen zum getesteten Produkt und den Produktfunktionen, die nach einer Reihe von Tests validiert wurden.

Im <awsproduct> Tag verwendete Attribute

name

Der Name des getesteten Produkts.

version

Die Version des getesteten Produkts.

features

Die validierten Funktionen Als markierte Funktionen required sind erforderlich, damit die Testsuite das Gerät validieren kann. Der folgende Ausschnitt zeigt, wie diese Informationen in der Datei awsiotdevicetester_report.xml angezeigt werden.

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

Als markierte Funktionen optional sind für die Validierung nicht erforderlich. Die folgenden Codeausschnitte zeigen optionale Funktionen.

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

Berichtsschema der Testsuite

Der Bericht suite-name_Result.xml wird im JUnit-XML-Format erstellt. Sie können ihn in Continuous Integration and Deployment-Plattformen wie Jenkins, Bamboo usw. integrieren. Der Bericht enthält eine Zusammenfassung der Testergebnisse.

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

Im Berichtsabschnitt sowohl im awsiotdevicetester_report.xml als auch im Abschnitt suite-name_report.xml werden die durchgeführten Tests und die Ergebnisse aufgeführt.

Im ersten XML-Tag <testsuites> ist die Zusammenfassung der Testausführung enthalten. Beispielsweise:

<testsuites name="MyTestSuite results" time="2299" tests="28" failures="0" errors="0" disabled="0">

Im <testsuites> Tag verwendete Attribute

name

Name der Testsuite

time

Die Zeit in Sekunden, die zum Ausführen der Testsuite benötigt wurde.

tests

Die Anzahl der ausgeführten Tests.

failures

Die Anzahl der ausgeführten Tests, die den Test nicht bestanden haben

errors

Die Anzahl der Tests, die IDT nicht ausführen konnte.

disabled

Dieses Attribut wird nicht verwendet und kann ignoriert werden.

Falls bei Tests Fehler auftreten, können Sie den fehlgeschlagenen Test identifizieren, indem Sie die XML-Tags von <testsuites> überprüfen. Die XML-Tags von <testsuite> im <testsuites>-Tag zeigen die Ergebniszusammenfassung eines Tests für eine Testgruppe. Beispielsweise:

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

Das Format ähnelt dem <testsuites>-Tag, weist aber das Attribut skipped auf, das nicht verwendet wird und ignoriert werden kann. Innerhalb der einzelnen <testsuite>-XML-Tags befinden sich <testcase>-Tags für alle ausgeführten Tests einer Testgruppe. Beispielsweise:

<testcase classname="Security Test" name="IP Change Tests" attempts="1"></testcase>

Im <testcase> Tag verwendete Attribute

name

Der Name des Tests

attempts

Gibt an, wie oft IDT den Testfall ausgeführt hat.

Wenn ein Testfall fehlschlägt oder ein Fehler auftritt, werden <failure>- oder <error>-Tags hinzugefügt, um das <testcase>-Tag mit Informationen für die Fehlerbehebung zu versehen. Beispielsweise:

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