Rivedi i risultati e i registri dei test - AWS IoT Greengrass

AWS IoT Greengrass Version 1 è entrato nella fase di estensione della vita utile il 30 giugno 2023. Per ulteriori informazioni, consulta la politica AWS IoT Greengrass V1 di manutenzione. Dopo questa data, AWS IoT Greengrass V1 non rilascerà aggiornamenti che forniscano funzionalità, miglioramenti, correzioni di bug o patch di sicurezza. I dispositivi che funzionano AWS IoT Greengrass V1 non subiranno interruzioni e continueranno a funzionare e a connettersi al cloud. Ti consigliamo vivamente di eseguire la migrazione a AWS IoT Greengrass Version 2, che aggiunge nuove importanti funzionalità e supporto per piattaforme aggiuntive.

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 test

Questa sezione descrive il formato in cui IDT genera registri della console e report di test.

Formato dei messaggi della console

AWS IoTDevice Tester utilizza un formato standard per la stampa di messaggi sulla console quando avvia una suite di test. Di seguito viene riportato un estratto di esempio di messaggio della console generato da 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 maggior parte dei messaggi della console comprende i 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 di messaggio registrato è uno deiinfo,warn, oppureerror. Un IDT emette afatalopanicmessaggio se incontra un evento previsto che lo fa uscire in anticipo.

msg

Il messaggio registrato.

executionId

Stringa ID univoca per il processo IDT corrente. Questo ID viene utilizzato per distinguere tra singole esecuzioni IDT.

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

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 parte specifica della suite di test del messaggio della console 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

La corrente del caso di test in esecuzione.

deviceId

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

Per stampare un riepilogo di test sulla console quando un IDT termina l'esecuzione di un test, è necessario includere unReportstatenella macchina a stati. Il riepilogo del test contiene informazioni sulla suite di test, i risultati del test per ciascun gruppo eseguito e le posizioni dei log e dei file di report generati. Nell'esempio seguente viene mostrato un messaggio di riepilogo dei 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 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 IoTSchema dei report Device Tester

awsiotdevicetester_report.xmlUn report firmato contenente le seguenti informazioni:

  • La versione di IDT.

  • La versione della suite di test.

  • La firma e la chiave del report utilizzati per firmare il report.

  • Il codice SKU del dispositivo e il nome del pool di dispositivi specificato nella sezionedevice.jsonfile.

  • La versione del prodotto e le caratteristiche del dispositivo testate.

  • Il riepilogo aggregato dei risultati dei test. Queste informazioni sono le stesse di quelle contenute nelsuite-name_report.xmlfile.

<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 tag <awsproduct>
name

Il nome del prodotto sottoposto a test.

version

La versione del prodotto sottoposto a test.

features

Le caratteristiche convalidate. Caratteristiche contrassegnate comerequiredsono necessari per la suite di test per 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>

Caratteristiche contrassegnate comeoptionalnon sono necessari 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 dei report della suite di

Il report suite-name_Result.xml è in formato XML JUnit. Puoi eseguire l'integrazione in piattaforme di integrazione e distribuzione continue come Jenkins, Bambù e così via. Il report contiene un riepilogo aggregato dei risultati dei 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 report in entrambi iawsiotdevicetester_report.xmlosuite-name_report.xmlI test eseguiti e i risultati ottenuti.

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

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

Il nome della suite di test.

time

Il tempo, espresso in secondi, impiegato 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 in grado di eseguire.

disabled

Questo attributo non è utilizzato e si può ignorare.

In caso di esiti negativi o errori nei test, puoi identificare il test non riuscito esaminando i tag XML <testsuites>. I tag XML <testsuite> all'interno del tag <testsuites> mostrano il riepilogo dei risultati dei test per un gruppo di test. Ad 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 tag XML <testsuite> ci sono tag <testcase> per ciascuno dei test eseguiti per un gruppo di test. Ad esempio:

<testcase classname="Security Test" name="IP Change Tests" attempts="1"></testcase>>
Attributi utilizzati nel tag <testcase>
name

Il nome del test.

attempts

Il numero di volte che IDT ha eseguito il test.

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