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 Konsolenprotokolle und Testberichte IDT generiert werden.
Nachrichtenformat der Konsole
AWS IoT Device Tester verwendet ein Standardformat für das Drucken von Nachrichten an die Konsole, wenn eine Testsuite gestartet wird. Der folgende Auszug zeigt ein Beispiel für eine Konsolennachricht, die von IDT generiert wurde.
[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
info
warn
, odererror
. IDTgibt einefatal
panic
ODER-Meldung aus, wenn ein erwartetes Ereignis auftritt, 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 Konsolenmeldungen enthalten zusätzliche Informationen über das zu testende Gerät und die Testsuite, Testgruppe und Testfälle, die IDT ausgeführt werden. Der folgende Auszug zeigt ein Beispiel für eine Konsolennachricht, die von 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.xml
ist ein unterschriebener 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.
-
Das Gerät 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
Datei enthalten sind.suite-name
_report.xml
<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 Dateiawsiotdevicetester_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 ist JUnitXMLformatiertsuite-name
_Result.xml
<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
werden die durchgeführten Tests und die Ergebnisse aufgeführt.suite-name
_report.xml
Das erste XML Tag <testsuites>
enthält die Zusammenfassung der Testausführung. 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 nicht ausgeführt werden IDT konnten.
disabled
-
Dieses Attribut wird nicht verwendet und kann ignoriert werden.
Im Falle von Fehlschlägen oder Fehlern können Sie anhand der <testsuites>
XML Tags ermitteln, welcher Test fehlgeschlagen ist. Die <testsuite>
XML Tags innerhalb des <testsuites>
Tags zeigen die Zusammenfassung der Testergebnisse 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. In jedem <testsuite>
XML Tag befinden sich <testcase>
Tags für jeden ausgeführten Test für eine 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 der Testfall IDT ausgeführt wurde.
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>