Tinjau hasil tes dan log IDT - AWS IoT Greengrass

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Tinjau hasil tes dan log IDT

Bagian ini menjelaskan format di mana IDT menghasilkan log konsol dan laporan uji.

Format pesan konsol

AWS IoT Device Tester menggunakan format standar untuk mencetak pesan ke konsol ketika memulai rangkaian tes. Kutipan berikut menunjukkan contoh pesan konsol yang dihasilkan oleh IDT.

time="2000-01-02T03:04:05-07:00" level=info msg=Using suite: MyTestSuite_1.0.0 executionId=9a52f362-1227-11eb-86c9-8c8590419f30

Sebagian besar pesan konsol terdiri dari kolom berikut:

time

Sebuah cap waktu ISO 8601 penuh untuk peristiwa yang tercatat.

level

Tingkat pesan untuk peristiwa yang tercatat. Biasanya, tingkat pesan yang tercatat adalah salah satu dari info, warn, atau error. IDT mengeluarkan pesan fatal atau panic jika bertemu dengan peristiwa yang diharapkan yang menyebabkannya keluar lebih awal.

msg

Pesan yang dicatat.

executionId

Sebuah string ID yang unik untuk proses IDT saat ini. ID ini digunakan untuk membedakan antara IDT individual yang berjalan.

Pesan konsol yang dihasilkan dari rangkaian tes memberikan informasi tambahan tentang perangkat yang diuji berikut rangkaian uji, grup uji, dan uji kasus yang dijalankan oleh IDT. Kutipan berikut menunjukkan contoh pesan konsol yang dihasilkan dari rangkaian tes.

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

Bagian tertentu dari rangkaian tes pada pesan konsol berisi kolom-kolom berikut:

suiteId

Nama rangkaian tes yang sedang berjalan saat ini.

groupId

ID grup uji yang sedang berjalan saat ini.

testCaseId

ID uji kasus yang berjalan saat ini.

deviceId

ID dari perangkat yang diuji yang sedang digunakan oleh uji kasus saat ini.

Untuk mencetak ringkasan tes ke konsol tersebut ketika IDT selesai menjalankan pengujian, Anda harus menyertakanReportstatusdi orkestrator tes Anda. Ringkasan uji berisi informasi tentang rangkaian uji, hasil uji untuk setiap grup yang dijalankan, dan lokasi log dan file laporan yang dihasilkan. Contoh berikut menunjukkan pesan ringkasan tes.

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

Skema laporan AWS IoT Device Tester

awsiotdevicetester_report.xml adalah laporan bertanda tangan yang berisi informasi berikut:

  • Versi IDT.

  • Versi rangkaian tes.

  • Tanda tangan laporan dan kunci yang digunakan untuk menandatangani laporan.

  • SKU Perangkat dan nama kolam perangkat yang ditentukan dalam file device.json.

  • Versi produk dan fitur perangkat yang diuji.

  • Ringkasan agregat hasil tes. Informasi ini sama dengan yang terkandung dalam 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>

File awsiotdevicetester_report.xml berisi tanda <awsproduct> yang berisi informasi tentang produk yang sedang diuji dan fitur produk yang divalidasi setelah menjalankan serangkaian pengujian.

Atribut yang digunakan dalam tanda <awsproduct>

name

Nama produk yang sedang diuji.

version

Versi produk yang sedang diuji.

features

Fitur divalidasi. Fitur yang ditandai sebagai required diperlukan bagi rangkaian tes untuk memvalidasi perangkat. Potongan berikut menunjukkan bagaimana informasi ini muncul di file awsiotdevicetester_report.xml.

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

Fitur yang ditandai sebagai optional tidak diperlukan untuk validasi. Potongan berikut menunjukkan fitur opsional.

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

Skema laporan rangkaian uji

Laporan suite-name_Result.xml berada dalam format JUnitXML. Anda dapat mengintegrasikannya ke dalam platform integrasi dan deployment berkelanjutan seperti Jenkins, Bamboo, dan sebagainya. Laporan ini berisi ringkasan agregat hasil tes.

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

Bagian laporan baik di awsiotdevicetester_report.xml maupun suite-name_report.xml mendaftar tes yang dijalankan dan hasilnya.

Tag XML pertama <testsuites> berisi ringkasan pelaksanaan tes. Misalnya:

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

Atribut yang digunakan dalam tanda <testsuites>

name

Nama rangkaian tes.

time

Waktu, dalam hitungan detik, yang dibutuhkannya untuk menjalankan rangkaian tes.

tests

Jumlah tes yang dilaksanakan.

failures

Jumlah tes yang dijalankan, tetapi tidak lulus.

errors

Jumlah tes yang tidak dapat dilaksanakan oelh IDT.

disabled

Atribut ini tidak digunakan dan bisa diabaikan.

Jika pengujian gagal atau salah, Anda dapat mengidentifikasi pengujian yang gagal dengan meninjau tanda XML <testsuites>. Tag XML <testsuite> di dalam tag <testsuites> menunjukkan ringkasan hasil tes untuk grup uji. Misalnya:

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

Format ini serupa dengan tanda <testsuites>, tetapi dengan atribut skipped yang tidak digunakan dan dapat diabaikan. Di dalam masing-masing tanda XML <testsuite>, terdapat tanda <testcase> untuk setiap tes yang dieksekusi untuk suatu grup uji. Misalnya:

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

Atribut yang digunakan dalam tanda <testcase>

name

Nama tes.

attempts

Berapa kali IDT mengeksekusi uji kasus.

Ketika tes gagal atau kesalahan terjadi, tag <failure> atau <error> akan ditambahkan ke tag <testcase> dengan informasi untuk pemecahan masalah. Misalnya:

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