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 dei
info
,warn
, oppureerror
. Un IDT emette afatal
opanic
messaggio 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.xml
Un 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 sezione
device.json
file. -
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 nel
file.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>
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 come
required
sono necessari per la suite di test per convalidare il dispositivo. Il seguente frammento di codice mostra come questa informazione viene visualizzata nel fileawsiotdevicetester_report.xml
.<feature name="ssh" value="supported" type="required"></feature>
Caratteristiche contrassegnate come
optional
non 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
è in formato XML JUnitsuite-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>
La sezione report in entrambi iawsiotdevicetester_report.xml
o
I test eseguiti e i risultati ottenuti.suite-name
_report.xml
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>