Rivedi i risultati e i registri dei IDT test - Gratuito RTOS

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Rivedi i risultati e i registri dei IDT test

Questa sezione descrive il formato in cui vengono IDT generati i log della console e i report dei test.

Formato dei messaggi della console

AWS IoT Device Tester utilizza un formato standard per la stampa dei messaggi sulla console quando avvia una suite di test. Il seguente estratto mostra un esempio di messaggio di console generato da. IDT

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

La maggior parte dei messaggi della console è composta dai seguenti campi:

time

Un timestamp ISO 8601 completo per l'evento registrato.

level

Il livello del messaggio per l'evento registrato. In genere, il livello del messaggio registrato è uno dei infowarn, o. error IDTemette un panic messaggio fatal or se rileva un evento previsto che ne causa la chiusura anticipata.

msg

Il messaggio registrato.

executionId

Una stringa ID univoca per il IDT processo corrente. Questo ID viene utilizzato per distinguere le singole IDT esecuzioni.

I messaggi della console generati da una suite di test forniscono informazioni aggiuntive sul dispositivo sottoposto a test e sulla suite di test, sul gruppo di test e sui casi di test in IDT esecuzione. Il seguente estratto mostra un esempio di messaggio di console generato da una suite di test.

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

La parte specifica del messaggio della console di test contiene i seguenti campi:

suiteId

Il nome della suite di test attualmente in esecuzione.

groupId

L'ID del gruppo di test attualmente in esecuzione.

testCaseId

L'ID del test case attualmente in esecuzione.

deviceId

Un ID del dispositivo sottoposto a test utilizzato dal test case corrente.

Il riepilogo del test contiene informazioni sulla suite di test, i risultati dei test per ogni gruppo eseguito e le posizioni dei log e dei file di report generati. L'esempio seguente mostra un messaggio di riepilogo del 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 schema del rapporto

awsiotdevicetester_report.xmlè un rapporto firmato che contiene le seguenti informazioni:

  • La IDT versione.

  • La versione della suite di test.

  • La firma del rapporto e la chiave utilizzate per firmare il rapporto.

  • Il dispositivo SKU e il nome del pool di dispositivi specificati nel device.json file.

  • La versione del prodotto e le funzionalità del dispositivo testate.

  • Il riepilogo aggregato dei risultati dei test. Queste informazioni sono le stesse contenute nel suite-name_report.xml file.

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

Il file awsiotdevicetester_report.xml contiene un tag <awsproduct> con le informazioni relative al prodotto sottoposto a test e le caratteristiche del prodotto che sono state convalidate dopo l'esecuzione di una suite di test.

Attributi utilizzati nel <awsproduct> tag

name

Il nome del prodotto sottoposto a test.

version

La versione del prodotto sottoposto a test.

features

Le caratteristiche convalidate. Le funzionalità contrassegnate come required sono necessarie affinché la suite di test possa convalidare il dispositivo. Il seguente frammento di codice mostra come questa informazione viene visualizzata nel file awsiotdevicetester_report.xml.

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

Le funzionalità contrassegnate come non optional sono richieste per la convalida. I seguenti snippet mostrano caratteristiche facoltative.

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

Schema di report della suite di test

Il suite-name_Result.xml rapporto è in JUnitXMLformato. Puoi eseguire l'integrazione in piattaforme di integrazione e distribuzione continue come Jenkins, Bambù e così via. Il rapporto contiene un riepilogo aggregato dei risultati del test.

<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 sezione del rapporto in entrambe le sezioni awsiotdevicetester_report.xml o suite-name_report.xml elenca i test eseguiti e i risultati.

Il primo XML tag <testsuites> contiene il riepilogo dell'esecuzione del test. Per esempio:

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

Attributi utilizzati nel <testsuites> tag

name

Il nome della suite di test.

time

Il tempo impiegato, in secondi, per eseguire la suite di test.

tests

Il numero di test eseguiti.

failures

Il numero di test eseguiti ma non superati.

errors

Il numero di test che IDT non è stato possibile eseguire.

disabled

Questo attributo non è utilizzato e si può ignorare.

In caso di fallimento o errore del test, puoi identificare il test che ha avuto esito negativo esaminando i <testsuites> XML tag. I <testsuite> XML tag all'interno del <testsuites> tag mostrano il riepilogo dei risultati del test per un gruppo di test. Per esempio:

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

Il formato è simile al tag <testsuites>, ma con un attributo skipped che non viene utilizzato e che è possibile ignorare. All'interno di ogni <testsuite> XML tag, ci sono <testcase> tag per ogni test eseguito per un gruppo di test. Per esempio:

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

Attributi utilizzati nel <testcase> tag

name

Il nome del test.

attempts

Il numero di volte in cui è stato IDT eseguito il test case.

Quando un test non riesce o si verifica un errore, i tag <failure> o <error> vengono aggiunti al tag <testcase> con informazioni per la risoluzione dei problemi. Per esempio:

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