

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
<a name="idt-review-results-logs"></a>

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

## Format pesan konsol
<a name="idt-console-format"></a>

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

```
[INFO] [2000-01-02 03:04:05]: 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.

```
[INFO] [2000-01-02 03:04:05]: Hello world! suiteId=MyTestSuitegroupId=myTestGroup testCaseId=myTestCase deviceId=my-deviceexecutionId=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.

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 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 skema laporan
<a name="idt-report"></a>

 `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 `<awsproduct>` tag**

**`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
<a name="suite-report"></a>

`suite-name_Result.xml`Laporan ini dalam [format JUnit XHTML](https://llg.cubic.org/docs/junit/). Anda dapat mengintegrasikannya ke dalam platform integrasi dan deployment berkelanjutan seperti [Jenkins](https://jenkins.io/), [Bamboo](https://www.atlassian.com/software/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. Contoh:

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

**Atribut yang digunakan dalam `<testsuites>` tag**

**`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. Contoh:

```
<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. Contoh:

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

**Atribut yang digunakan dalam `<testcase>` tag**

**`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. Contoh:

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