

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

# Penasihat Perangkat
<a name="device-advisor"></a>

[Device Advisor](https://aws.amazon.com/iot-core/features/) adalah kemampuan pengujian berbasis cloud yang dikelola sepenuhnya untuk memvalidasi perangkat IoT selama pengembangan perangkat lunak perangkat. Device Advisor menyediakan pengujian bawaan yang dapat Anda gunakan untuk memvalidasi perangkat IoT untuk konektivitas yang andal dan aman AWS IoT Core dengan, sebelum menerapkan perangkat ke produksi. [Pengujian bawaan Device Advisor membantu Anda memvalidasi perangkat lunak perangkat Anda terhadap praktik terbaik untuk penggunaan Pekerjaan [TLS, MQTT](https://docs.aws.amazon.com//iot/latest/developerguide/protocols.html)[, [Device Shadow](https://docs.aws.amazon.com//iot/latest/developerguide/iot-device-shadows.html), dan IoT](https://docs.aws.amazon.com//iot/latest/developerguide/protocols.html).](https://docs.aws.amazon.com//iot/latest/developerguide/iot-jobs.html) Anda juga dapat mengunduh laporan kualifikasi yang ditandatangani untuk dikirimkan ke Jaringan AWS Mitra agar perangkat Anda memenuhi syarat untuk [Katalog Perangkat AWS Mitra](https://devices.amazonaws.com/) tanpa perlu mengirim perangkat Anda dan menunggu perangkat Anda diuji.

**catatan**  
Device Advisor didukung di wilayah us-east-1, us-west-2, ap-northeast-1, dan eu-west-1.  
Device Advisor mendukung perangkat dan klien yang menggunakan protokol MQTT dan MQTT over WebSocket Secure (WSS) untuk mempublikasikan dan berlangganan pesan. Semua protokol mendukung IPv4 dan. IPv6  
Device Advisor mendukung sertifikat server RSA.

Perangkat apa pun yang telah dibangun untuk terhubung AWS IoT Core dapat memanfaatkan Device Advisor. Anda dapat mengakses Device Advisor dari [AWS IoT konsol](https://us-east-1.console.aws.amazon.com/iot/home?region=us-east-1#/deviceadvisor/intro), atau dengan menggunakan AWS CLI atau SDK. Saat Anda siap untuk menguji perangkat Anda, daftarkan AWS IoT Core dan konfigurasikan perangkat lunak perangkat dengan titik akhir Device Advisor. Kemudian pilih pengujian bawaan, konfigurasikan, jalankan pengujian di perangkat Anda, dan dapatkan hasil pengujian beserta log terperinci atau laporan kualifikasi.

Device Advisor adalah titik akhir pengujian di cloud. AWS Anda dapat menguji perangkat dengan mengonfigurasinya agar tersambung ke titik akhir pengujian yang disediakan oleh Device Advisor. Setelah perangkat dikonfigurasi untuk menyambung ke titik akhir pengujian, Anda dapat mengunjungi konsol Device Advisor atau menggunakan AWS SDK untuk memilih pengujian yang ingin dijalankan di perangkat. Device Advisor kemudian mengelola siklus hidup penuh pengujian, termasuk penyediaan sumber daya, penjadwalan proses pengujian, mengelola mesin status, merekam perilaku perangkat, mencatat hasil, dan memberikan hasil akhir dalam bentuk laporan pengujian.

**Protokol TLS**

Protokol Transport Layer Security (TLS) digunakan untuk mengenkripsi data rahasia melalui jaringan yang tidak aman seperti internet. Protokol TLS adalah penerus protokol Secure Sockets Layer (SSL).

Device Advisor mendukung protokol TLS berikut:
+ TLS 1.3 (disarankan)
+ TLS 1.2

**Protokol, pemetaan port, dan otentikasi**

Protokol komunikasi perangkat digunakan oleh perangkat atau klien untuk terhubung ke broker pesan dengan menggunakan titik akhir perangkat. Tabel berikut mencantumkan protokol yang didukung oleh titik akhir Device Advisor serta metode otentikasi serta port yang digunakan.


**Protokol, otentikasi, dan pemetaan port**  

| Protokol | Operasi yang didukung | Autentikasi | Port | Nama protokol ALPN | 
| --- | --- | --- | --- | --- | 
| MQTT lebih WebSocket | Publikasikan, Berlangganan | Tanda Tangan Versi 4 | 443 | N/A | 
| MQTT | Publikasikan, Berlangganan | Sertifikat klien X.509 | 8883 | `x-amzn-mqtt-ca` | 
| MQTT | Publikasikan, Berlangganan | Sertifikat klien X.509 | 443 | N/A | 

**Topics**
+ [Menyiapkan](device-advisor-setting-up.md)
+ [Memulai dengan Device Advisor di konsol](da-console-guide.md)
+ [Alur kerja Device Advisor](device-advisor-workflow.md)
+ [Alur kerja konsol terperinci Device Advisor](device-advisor-console-tutorial.md)
+ [Durasi panjang menguji alur kerja konsol](device-advisor-long-duration-console-tutorial.md)
+ [Titik akhir VPC Penasihat Perangkat ()AWS PrivateLink](device-advisor-vpc-endpoint.md)
+ [Kasus uji Device Advisor](device-advisor-tests.md)

# Menyiapkan
<a name="device-advisor-setting-up"></a>

Sebelum Anda menggunakan Device Advisor untuk pertama kalinya, selesaikan tugas-tugas berikut:

## Buat hal IoT
<a name="da-create-thing-certificate"></a>

Pertama, buat IoT dan lampirkan sertifikat ke benda itu. Untuk tutorial tentang cara membuat sesuatu, lihat [Create a thing object](https://docs.aws.amazon.com/iot/latest/developerguide/create-iot-resources.html#create-aws-thing).

## Membuat peran IAM untuk digunakan sebagai peran perangkat Anda
<a name="da-iam-role"></a>

**catatan**  
Anda dapat dengan cepat membuat peran perangkat dengan konsol Device Advisor. Untuk mempelajari cara mengatur peran perangkat dengan konsol Device Advisor, lihat [Memulai Device Advisor di](https://docs.aws.amazon.com/iot/latest/developerguide/da-console-guide.html) konsol.

1. Buka [AWS Identity and Access Management konsol](https://console.aws.amazon.com/iam/home?region=us-west-2#/home) dan masuk ke yang Akun AWS Anda gunakan untuk pengujian Device Advisor.

1. Di panel navigasi kiri, pilih **Kebijakan**.

1. Pilih **Buat kebijakan**.

1. Di bawah **Create policy**, lakukan hal berikut:

   1. Untuk **Layanan**, pilih **IoT**.

   1. Di bawah **Tindakan**, lakukan salah satu hal berikut:
      + (Disarankan) Pilih tindakan berdasarkan kebijakan yang dilampirkan pada hal IoT atau sertifikat yang Anda buat di bagian sebelumnya.
      + Cari tindakan berikut di kotak **tindakan Filter** dan pilih:
        + `Connect`
        + `Publish`
        + `Subscribe`
        + `Receive`
        + `RetainPublish`

   1. Di bawah **Sumber Daya**, batasi sumber daya klien, topik, dan topik. Membatasi sumber daya ini adalah praktik terbaik keamanan. Untuk membatasi sumber daya, lakukan hal berikut:

      1. Pilih **Tentukan ARN sumber daya klien untuk tindakan Connect**.

      1. Pilih **Add ARN**, lalu lakukan salah satu hal berikut:
**catatan**  
*ClientID* adalah ID klien MQTT yang digunakan perangkat Anda untuk berinteraksi dengan Device Advisor.
         + Tentukan **Region**, **AccountID**, dan **clientID** di editor ARN visual.
         + Masukkan Amazon Resource Names (ARNs) secara manual dari topik IoT yang ingin Anda jalankan dengan kasus pengujian.

      1. Pilih **Tambahkan**.

      1. Pilih **Tentukan sumber topik ARN untuk Menerima dan satu tindakan lagi**.

      1. Pilih **Add ARN**, lalu lakukan salah satu hal berikut:
**catatan**  
*Nama topik* adalah topik MQTT tempat perangkat Anda mempublikasikan pesan.
         + Tentukan nama **Wilayah**, **AccountID**, **dan Topik** di editor ARN visual.
         + Masukkan topik IoT secara manual yang ingin Anda jalankan dengan kasus uji. ARNs 

      1. Pilih **Tambahkan**.

      1. Pilih **Tentukan sumber daya TopicFilter ARN untuk** tindakan Berlangganan.

      1. Pilih **Add ARN**, lalu lakukan salah satu hal berikut:
**catatan**  
*Nama topik* adalah topik MQTT tempat perangkat Anda berlangganan.
         + Tentukan nama **Wilayah**, **AccountID**, **dan Topik** di editor ARN visual.
         + Masukkan topik IoT secara manual yang ingin Anda jalankan dengan kasus uji. ARNs 

      1. Pilih **Tambahkan**.

1. Pilih **Berikutnya: Tanda**.

1. Pilih **Berikutnya: Tinjau**.

1. Di bawah **Kebijakan peninjauan**, masukkan **Nama** untuk kebijakan Anda.

1. Pilih **Buat kebijakan**.

1. Di panel navigasi kiri, Pilih **Peran**.

1. Pilih **Buat Peran**.

1. Di bawah **Pilih entitas tepercaya**, pilih **Kebijakan kepercayaan khusus**.

1. Masukkan kebijakan kepercayaan berikut ke dalam kotak **Kebijakan kepercayaan kustom**. Untuk melindungi dari masalah deputi yang membingungkan, tambahkan kunci konteks kondisi global `[aws:SourceArn](https://docs.aws.amazon.com//IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn)` dan `[aws:SourceAccount](https://docs.aws.amazon.com//IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount)` ke kebijakan.
**penting**  
Anda `aws:SourceArn` harus mematuhi `format: arn:aws:iotdeviceadvisor:region:account-id:*.` Pastikan yang `region` cocok dengan AWS IoT Wilayah Anda dan `account-id` cocok dengan ID akun pelanggan Anda. Untuk informasi lebih lanjut, lihat [Pencegahan Deputi Bingung Lintas Layanan](https://docs.aws.amazon.com/iot/latest/developerguide/security-best-practices.html#cross-service-confused-deputy-prevention-DA).  
****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AllowAwsIoTCoreDeviceAdvisor",
               "Effect": "Allow",
               "Principal": {
                   "Service": "iotdeviceadvisor.amazonaws.com"
           },
               "Action": "sts:AssumeRole",
               "Condition": {
                   "StringEquals": {
                       "aws:SourceAccount": "123456789012"
               },
                   "ArnLike": {
                       "aws:SourceArn": "arn:aws:iotdeviceadvisor:*:123456789012:suitedefinition/*"
               }
           }
           }
       ]
   }
   ```

1. Pilih **Berikutnya**.

1. Pilih kebijakan yang Anda buat di Langkah 4.

1. (Opsional) Di bawah **Setel batas izin**, pilih **Gunakan batas izin untuk mengontrol izin peran maksimum, lalu** pilih kebijakan yang Anda buat.

1. Pilih **Berikutnya**.

1. Masukkan **nama Peran** dan **deskripsi Peran**.

1. Pilih **Buat peran**.

## Membuat kebijakan yang dikelola khusus untuk pengguna IAM untuk menggunakan Device Advisor
<a name="da-managed-policy"></a>

1. Arahkan ke konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/). Jika diminta, masukkan AWS kredensyal Anda untuk masuk.

1. Di panel navigasi di sebelah kiri, pilih **Kebijakan**.

1. Pilih **Buat Kebijakan**, lalu pilih tab **JSON**. 

1. Tambahkan izin yang diperlukan untuk menggunakan Device Advisor. Dokumen kebijakan dapat ditemukan di topik [Praktik terbaik keamanan](https://docs.aws.amazon.com/iot/latest/developerguide/security-best-practices.html#device-advisor-perms). 

1. Pilih **Tinjau Kebijakan**.

1. Masukkan **Nama** dan **Deskripsi**.

1. Pilih **Buat Kebijakan**.

## Buat pengguna IAM untuk menggunakan Device Advisor
<a name="da-iam-user"></a>

**catatan**  
Sebaiknya Anda membuat pengguna IAM untuk digunakan saat menjalankan pengujian Device Advisor. Menjalankan pengujian Device Advisor dari pengguna admin dapat menimbulkan risiko keamanan dan tidak disarankan.

1. Arahkan ke konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)Jika diminta, masukkan AWS kredensyal Anda untuk masuk.

1. Di panel navigasi kiri, Pilih **Pengguna**.

1. Pilih **Tambah Pengguna**.

1. Masukkan **nama pengguna**.

1. Pengguna membutuhkan akses terprogram jika mereka ingin berinteraksi dengan AWS luar. Konsol Manajemen AWS Cara untuk memberikan akses terprogram tergantung pada jenis pengguna yang mengakses AWS.

   Untuk memberi pengguna akses programatis, pilih salah satu opsi berikut.  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/device-advisor-setting-up.html)

1. Pilih **Berikutnya: Izin**.

1. Untuk memberikan akses dan menambahkan izin bagi pengguna, grup, atau peran Anda:
   + Pengguna dan grup di AWS IAM Identity Center:

     Buat rangkaian izin. Ikuti instruksi di [Buat rangkaian izin](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html) dalam *Panduan Pengguna AWS IAM Identity Center *.
   + Pengguna yang dikelola di IAM melalui penyedia identitas:

     Buat peran untuk federasi identitas. Ikuti instruksi dalam [Buat peran untuk penyedia identitas pihak ketiga (federasi)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html) dalam *Panduan Pengguna IAM*.
   + Pengguna IAM:
     + Buat peran yang dapat diambil pengguna Anda. Ikuti instruksi dalam [Buat peran untuk pengguna IAM](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html) dalam *Panduan Pengguna IAM*.
     + (Tidak disarankan) Lampirkan kebijakan langsung ke pengguna atau tambahkan pengguna ke grup pengguna. Ikuti petunjuk dalam [Menambahkan izin ke pengguna (konsol)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) dalam *Panduan Pengguna IAM*.

1. Masukkan nama kebijakan yang dikelola khusus yang Anda buat di kotak pencarian. Kemudian, pilih kotak centang untuk **Nama kebijakan**.

1. Pilih **Berikutnya: Tanda**.

1. Pilih **Berikutnya: Tinjauan**.

1. Pilih **Create user** (Buat pengguna).

1. Pilih **Tutup**.

Device Advisor memerlukan akses ke AWS sumber daya Anda (barang, sertifikat, dan titik akhir) atas nama Anda. Pengguna IAM Anda harus memiliki izin yang diperlukan. Device Advisor juga akan menerbitkan log ke Amazon CloudWatch jika Anda melampirkan kebijakan izin yang diperlukan untuk pengguna IAM Anda.

## Konfigurasikan perangkat Anda
<a name="da-configure-device"></a>

Device Advisor menggunakan ekstensi TLS indikasi nama server (SNI) untuk menerapkan konfigurasi TLS. Perangkat harus menggunakan ekstensi ini saat terhubung dan meneruskan nama server yang identik dengan titik akhir pengujian Device Advisor.

Device Advisor memungkinkan koneksi TLS saat tes dalam keadaan. `Running` Ini menyangkal koneksi TLS sebelum dan sesudah setiap uji coba. Untuk alasan ini, kami menyarankan Anda menggunakan mekanisme coba lagi koneksi perangkat untuk pengalaman pengujian otomatis sepenuhnya dengan Device Advisor. Anda dapat menjalankan rangkaian pengujian yang mencakup lebih dari satu kasus uji, seperti TLS connect, MQTT connect, dan MQTT publish. Jika Anda menjalankan beberapa kasus pengujian, sebaiknya perangkat Anda mencoba menyambung ke titik akhir pengujian kami setiap lima detik. Anda kemudian dapat mengotomatiskan menjalankan beberapa kasus uji secara berurutan.

**catatan**  
Untuk menyiapkan perangkat lunak perangkat Anda untuk pengujian, kami sarankan Anda menggunakan SDK yang dapat terhubung AWS IoT Core. Anda kemudian harus memperbarui SDK dengan titik akhir pengujian Device Advisor yang disediakan untuk Anda. Akun AWS

Device Advisor mendukung dua jenis endpoint: Account-level dan Device-level endpoint. Pilih titik akhir yang paling sesuai dengan kasus penggunaan Anda. Untuk menjalankan beberapa rangkaian pengujian secara bersamaan untuk perangkat yang berbeda, gunakan titik akhir tingkat Perangkat. 

Jalankan perintah berikut untuk mendapatkan titik akhir tingkat Perangkat:

Untuk pelanggan MQTT yang menggunakan sertifikat klien X.509:

```
aws iotdeviceadvisor get-endpoint --thing-arn your-thing-arn
```

atau

```
aws iotdeviceadvisor get-endpoint --certificate-arn your-certificate-arn
```

Untuk MQTT atas WebSocket pelanggan yang menggunakan Signature Versi 4:

```
aws iotdeviceadvisor get-endpoint --device-role-arn your-device-role-arn --authentication-method SignatureVersion4
```

Untuk menjalankan satu rangkaian pengujian pada satu waktu, pilih titik akhir tingkat Akun. Jalankan perintah berikut untuk mendapatkan titik akhir Account-level:

```
aws iotdeviceadvisor get-endpoint
```

# Memulai dengan Device Advisor di konsol
<a name="da-console-guide"></a>

Tutorial ini membantu Anda memulai AWS IoT Core Device Advisor di konsol. Device Advisor menawarkan fitur-fitur seperti tes yang diperlukan dan laporan kualifikasi yang ditandatangani. Anda dapat menggunakan pengujian dan laporan ini untuk memenuhi syarat dan daftar perangkat di [Katalog Perangkat AWS Mitra](https://devices.amazonaws.com/) sebagaimana dirinci dalam [program AWS IoT Core kualifikasi](https://aws.amazon.com/partners/dqp/).

Untuk informasi selengkapnya tentang menggunakan Device Advisor, lihat [Alur kerja Device Advisor](device-advisor-workflow.md) dan[Alur kerja konsol terperinci Device Advisor](device-advisor-console-tutorial.md).

Untuk menyelesaikan tutorial ini, ikuti langkah-langkah yang diuraikan dalam[Menyiapkan](device-advisor-setting-up.md).

**catatan**  
Device Advisor didukung sebagai berikut: Wilayah AWS  
AS Timur (Virginia Utara)
AS Barat (Oregon)
Asia Pasifik (Tokyo)
Eropa (Irlandia)

**Memulai**

1. Di panel navigasi [AWS IoT konsol](https://console.aws.amazon.com//iot) di bawah **Uji**, pilih **Device Advisor**. Kemudian, pilih tombol **Mulai walkthrough** di konsol.  
![\[Device Advisor adalah kemampuan pengujian yang dikelola sepenuhnya untuk perangkat IoT untuk memvalidasi interaksi aman AWS IoT Core dengan, mengidentifikasi masalah perangkat lunak, dan mendapatkan hasil pengujian.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/da-console-gs.png)

1. Halaman **Memulai dengan Device Advisor** memberikan ikhtisar langkah-langkah yang diperlukan untuk membuat rangkaian pengujian dan menjalankan pengujian terhadap perangkat Anda. Anda juga dapat menemukan titik akhir pengujian Device Advisor untuk akun Anda di sini. Anda harus mengonfigurasi firmware atau perangkat lunak pada perangkat yang digunakan untuk pengujian agar terhubung ke titik akhir pengujian ini.

   Untuk menyelesaikan tutorial ini, pertama [buat sesuatu dan sertifikat](https://docs.aws.amazon.com/iot/latest/developerguide/device-advisor-setting-up.html#da-create-thing-certificate). Setelah Anda meninjau informasi di bawah **Cara kerjanya**, pilih **Berikutnya**.  
![\[Langkah-langkah untuk menguji konektivitas perangkat IoT: pilih protokol, buat rangkaian pengujian, konfigurasi pengaturan perangkat.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/da-console-gs1.png)

1.  Pada **Langkah 1: Pilih protokol**, pilih protokol dari opsi yang tercantum. Lalu, pilih **Selanjutnya**.  
![\[Antarmuka Device Advisor yang menampilkan opsi untuk memilih protokol komunikasi (MQTT 3.1.1, MQTT 3.1.1 over, MQTT 5 WebSocket, MQTT 5 over) untuk menguji perangkat IoT. WebSocket\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/da-console-protocol.png)

1. Pada **Langkah 2**, Anda membuat dan mengonfigurasi rangkaian pengujian khusus. Rangkaian pengujian khusus harus memiliki setidaknya satu kelompok uji, dan setiap kelompok uji harus memiliki setidaknya satu kasus uji. Kami telah menambahkan kasus uji **MQTT Connect** agar Anda dapat memulai.

   Pilih **properti Test suite**.   
![\[Layar “Buat rangkaian pengujian” di Device Advisors, tempat pengguna dapat membuat dan mengonfigurasi grup pengujian dan kasus untuk menguji perangkat IoT dengan protokol MQTT.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/da-console-test-suite-create.png)

   Menyediakan properti rangkaian pengujian saat Anda membuat rangkaian pengujian. Anda dapat mengonfigurasi properti tingkat suite berikut:
   + **Nama suite uji**: Masukkan nama untuk rangkaian pengujian Anda.
   + Batas **waktu** (opsional): Batas waktu (dalam detik) untuk setiap kasus uji dalam rangkaian pengujian saat ini. Jika Anda tidak menentukan nilai batas waktu, nilai default akan digunakan.
   + **Tag** (opsional): Tambahkan tag ke rangkaian pengujian.

   Setelah selesai, pilih **Perbarui properti**.  
![\[Formulir untuk memperbarui properti rangkaian pengujian, termasuk nama, batas waktu, dan kemampuan untuk menambahkan tag. Berisi tombol “Perbarui properti”.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/da-console-test-suite-properties.png)

1. (Opsional) Untuk memperbarui konfigurasi grup rangkaian pengujian, pilih tombol **Edit** di sebelah nama grup pengujian.
   + **Nama**: Masukkan nama kustom untuk grup test suite.
   + Batas **waktu** (opsional): Batas waktu (dalam detik) untuk setiap kasus uji dalam rangkaian pengujian saat ini. Jika Anda tidak menentukan nilai batas waktu, nilai default akan digunakan.

   Setelah selesai, pilih **Selesai** untuk melanjutkan.  
![\[Grup uji bernama “Grup uji 1" ditampilkan dengan opsi untuk mengonfigurasi batas waktu dan menambahkan lebih banyak grup pengujian.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/da-console-test-suite-config.png)

1. (Opsional) Untuk memperbarui konfigurasi kasus uji untuk kasus uji, pilih tombol **Edit** di sebelah nama kasus uji.
   + **Nama**: Masukkan nama kustom untuk grup test suite.
   + Batas **waktu** (opsional): Batas waktu (dalam detik) untuk kasus uji yang dipilih. Jika Anda tidak menentukan nilai batas waktu, nilai default akan digunakan.

   Setelah selesai, pilih **Selesai** untuk melanjutkan.  
![\[Antarmuka “Buat rangkaian pengujian” yang menampilkan opsi untuk mengonfigurasi rangkaian pengujian, grup pengujian, dan kasus pengujian individual untuk menguji perangkat IoT.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/da-console-test-case-config.png)

1. (Opsional) Untuk menambahkan lebih banyak grup pengujian ke rangkaian pengujian, pilih **Tambahkan grup pengujian**, lalu ikuti petunjuk di Langkah 5.

1. (Opsional) Untuk menambahkan lebih banyak kasus uji, seret **kasus uji di bagian Kasus uji** ke salah satu grup pengujian Anda.  
![\[Antarmuka “Buat rangkaian pengujian” tempat pengguna dapat mengonfigurasi grup uji dan kasus uji untuk pengujian protokol MQTT perangkat IoT.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/da-console-drag.png)

1. Anda dapat mengubah urutan grup pengujian dan kasus uji Anda. Untuk membuat perubahan, seret kasus uji yang terdaftar ke atas atau ke bawah daftar. Device Advisor menjalankan pengujian sesuai urutan yang Anda cantumkan.

   Setelah mengonfigurasi rangkaian pengujian, pilih **Berikutnya**.

1. Pada **Langkah 3**, pilih AWS IoT sesuatu atau sertifikat untuk diuji menggunakan Device Advisor. Jika Anda tidak memiliki barang atau sertifikat yang ada, lihat [Menyiapkan](https://docs.aws.amazon.com/iot/latest/developerguide/device-advisor-setting-up.html).   
![\[Opsi konfigurasi yang mencakup pemilihan protokol, membuat rangkaian pengujian, mengonfigurasi pengaturan perangkat, dan meninjau proses dan hasil pengujian.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/da-device-settings.png)

1. Anda dapat mengonfigurasi peran perangkat yang digunakan Device Advisor untuk melakukan tindakan AWS IoT MQTT atas nama perangkat pengujian Anda. Hanya untuk kasus uji **MQTT Connect**, tindakan **Connect** dipilih secara otomatis. Ini karena peran perangkat memerlukan izin ini untuk menjalankan rangkaian pengujian. Untuk kasus uji lainnya, tindakan yang sesuai dipilih. 

   Berikan nilai sumber daya untuk setiap tindakan yang dipilih. Misalnya, untuk tindakan **Connect**, berikan ID klien yang digunakan perangkat Anda untuk menyambung ke titik akhir Device Advisor. Anda dapat memberikan beberapa nilai dengan nilai terpisah koma, dan nilai awalan dengan karakter wildcard (\$1). Misalnya, untuk memberikan izin untuk mempublikasikan topik apa pun yang dimulai dengan`MyTopic`, masukkan **MyTopic\$1** sebagai nilai sumber daya.  
![\[Antarmuka Device Advisor tempat Anda dapat memilih peran perangkat dan menentukan izin untuk menghubungkan, menerbitkan, berlangganan, dan mengelola topik dan klien MQTT. IDs\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/da-console-device-role.png)

   Untuk menggunakan peran perangkat yang dibuat sebelumnya dari [Menyiapkan](https://docs.aws.amazon.com/iot/latest/developerguide/device-advisor-setting-up.html), pilih **Pilih peran yang ada**. Kemudian pilih peran perangkat Anda di bawah **Pilih peran**.  
![\[Antarmuka formulir web untuk memilih peran perangkat, dengan opsi untuk membuat peran baru atau memilih peran yang ada bernama "DeviceAdvisorServiceRole”.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/da-console-select-device-role.png)

   Konfigurasikan peran perangkat Anda dengan salah satu dari dua opsi yang disediakan, lalu pilih **Berikutnya**.

1. Di bagian **titik akhir Uji**, pilih titik akhir yang paling sesuai dengan kasus penggunaan Anda. Untuk menjalankan beberapa rangkaian pengujian secara bersamaan dengan yang sama Akun AWS, pilih Titik **akhir tingkat perangkat**. Untuk menjalankan satu rangkaian pengujian pada satu waktu, pilih Titik akhir **tingkat Akun**.  
![\[Pilihan untuk memilih Account-level atau Device-level endpoint untuk pengujian, dengan URL endpoint yang disediakan dan tombol Next.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/da-console-endpoint.png)

1. **Langkah 4** menunjukkan ikhtisar perangkat uji yang dipilih, titik akhir pengujian, rangkaian pengujian, dan peran perangkat uji yang dikonfigurasi. Untuk membuat perubahan pada bagian, pilih tombol **Edit** untuk bagian yang ingin Anda edit. Setelah mengonfirmasi konfigurasi pengujian, pilih **Jalankan** untuk membuat rangkaian pengujian dan menjalankan pengujian.
**catatan**  
Untuk hasil terbaik, Anda dapat menghubungkan perangkat pengujian yang dipilih ke titik akhir pengujian Device Advisor sebelum memulai rangkaian pengujian. Kami menyarankan Anda memiliki mekanisme yang dibuat untuk perangkat Anda untuk mencoba menghubungkan ke titik akhir pengujian kami setiap lima detik hingga satu hingga dua menit.  
![\[Konsol konfigurasi perangkat yang menampilkan detail peran perangkat, titik akhir pengujian, dan opsi untuk membatalkan, kembali, atau menjalankan.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/da-console-device-review.png)  
![\[Konsol konfigurasi perangkat yang menampilkan detail peran perangkat, titik akhir pengujian, dan opsi untuk membatalkan, kembali, atau menjalankan.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/da-console-device-review-contd.png)

1. Di panel navigasi di bawah **Uji**, pilih **Device Advisor**, lalu pilih **Uji berjalan dan** hasil. Pilih test suite run untuk melihat detail dan log run nya.  
![\[Antarmuka rangkaian pengujian yang menunjukkan pengujian MQTT 3.1.1 sedang berlangsung untuk perangkat "”. MyThing\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/da-console-runs-results.png)

1. Untuk mengakses CloudWatch log Amazon untuk menjalankan suite:
   + Pilih **log Test suite** untuk melihat CloudWatch log untuk menjalankan rangkaian pengujian.
   + Pilih **Log kasus uji** untuk kasus uji apa pun untuk melihat log khusus kasus CloudWatch uji.

1. Berdasarkan hasil pengujian Anda, [pecahkan masalah](https://docs.aws.amazon.com/iot/latest/developerguide/iot_troubleshooting.html#device-advisor-troubleshooting) perangkat Anda hingga semua pengujian lulus.

# Alur kerja Device Advisor
<a name="device-advisor-workflow"></a>

Tutorial ini menjelaskan cara membuat rangkaian pengujian khusus dan menjalankan pengujian terhadap perangkat yang ingin Anda uji di konsol. Setelah tes selesai, Anda dapat melihat hasil tes dan log terperinci.

## Prasyarat
<a name="device-advisor-workflow-prereqs"></a>

Sebelum Anda memulai tutorial ini tutorial ini, selesaikan langkah-langkah yang diuraikan. [Menyiapkan](device-advisor-setting-up.md)

## Buat definisi rangkaian pengujian
<a name="device-advisor-workflow-create-suite-definition"></a>

Pertama, [instal AWS SDK](https://docs.aws.amazon.com/iot/latest/developerguide/iot-connect-service.html#iot-service-sdks).

### `rootGroup`sintaks
<a name="rootGroup"></a>

Grup root adalah string JSON yang menentukan kasus pengujian mana yang akan disertakan dalam rangkaian pengujian Anda. Ini juga menentukan konfigurasi yang diperlukan untuk kasus uji tersebut. Gunakan grup root untuk menyusun dan memesan rangkaian pengujian Anda berdasarkan kebutuhan Anda. Hirarki rangkaian pengujian adalah: 

```
test suite → test group(s) → test case(s)
```

Test suite harus memiliki setidaknya satu kelompok uji, dan setiap kelompok uji harus memiliki setidaknya satu kasus uji. Device Advisor menjalankan pengujian sesuai urutan penentuan grup pengujian dan kasus pengujian.

Setiap kelompok akar mengikuti struktur dasar ini:

```
{
    "configuration": {  // for all tests in the test suite
        "": ""
    }
    "tests": [{
        "name": ""
        "configuration": {  // for all sub-groups in this test group 
            "": ""
        },
        "tests": [{
            "name": ""
            "configuration": {  // for all test cases in this test group 
                "": ""
            },
            "test": {
                "id": ""  
                "version": ""
            }
        }]
    }]
}
```



Di grup root, Anda menentukan rangkaian pengujian dengan`name`,`configuration`, dan `tests` yang dikandung grup. `tests`Kelompok ini berisi definisi tes individu. Anda mendefinisikan setiap pengujian dengan`name`,`configuration`, dan `test` blok yang mendefinisikan kasus uji untuk pengujian itu. Akhirnya, setiap kasus uji didefinisikan dengan `id` dan`version`.

Untuk informasi tentang cara menggunakan `"version"` bidang `"id"` dan untuk setiap kasus uji (`test`blok), lihat[Kasus uji Device Advisor](device-advisor-tests.md). Bagian itu juga berisi informasi tentang `configuration` pengaturan yang tersedia.

Blok berikut adalah contoh konfigurasi grup root. Konfigurasi ini menentukan kasus uji *MQTT Connect Happy Case* dan *MQTT Connect Exponential Backoff* Retries, bersama dengan deskripsi bidang konfigurasi.

```
{
    "configuration": {},  // Suite-level configuration
    "tests": [            // Group definitions should be provided here
      {
        "name": "My_MQTT_Connect_Group",  // Group definition name
        "configuration": {}               // Group definition-level configuration,
        "tests": [                        // Test case definitions should be provided here
        {
            "name": "My_MQTT_Connect_Happy_Case",  // Test case definition name
            "configuration": {
                "EXECUTION_TIMEOUT": 300        // Test case definition-level configuration, in seconds
            }, 
            "test": {
                "id": "MQTT_Connect",              // test case id
                "version": "0.0.0"                 // test case version
            }
        },
        {
            "name": "My_MQTT_Connect_Jitter_Backoff_Retries",  // Test case definition name
            "configuration": {
                "EXECUTION_TIMEOUT": 600                 // Test case definition-level configuration,  in seconds
            },
            "test": {
                "id": "MQTT_Connect_Jitter_Backoff_Retries",  // test case id
                "version": "0.0.0"                                 // test case version
            }
        }]
    }]
}
```

Anda harus menyediakan konfigurasi grup root saat membuat definisi rangkaian pengujian. Simpan `suiteDefinitionId` yang dikembalikan dalam objek respon. Anda dapat menggunakan ID ini untuk mengambil informasi definisi rangkaian pengujian dan menjalankan rangkaian pengujian Anda.

Berikut adalah contoh Java SDK:

```
response = iotDeviceAdvisorClient.createSuiteDefinition(
        CreateSuiteDefinitionRequest.builder()
            .suiteDefinitionConfiguration(SuiteDefinitionConfiguration.builder()
                .suiteDefinitionName("your-suite-definition-name")
                .devices(
                    DeviceUnderTest.builder()
                        .thingArn("your-test-device-thing-arn")
                        .certificateArn("your-test-device-certificate-arn")
                        .deviceRoleArn("your-device-role-arn") //if using SigV4 for MQTT over WebSocket
                        .build()
                )
                .rootGroup("your-root-group-configuration")
                .devicePermissionRoleArn("your-device-permission-role-arn")
                .protocol("MqttV3_1_1 || MqttV5 || MqttV3_1_1_OverWebSocket || MqttV5_OverWebSocket")
                .build()
            )
            .build()
)
```

## Dapatkan definisi test suite
<a name="device-advisor-workflow-describe-suite-run"></a>

Setelah membuat definisi rangkaian pengujian, Anda menerima objek respons operasi `CreateSuiteDefinition` API. `suiteDefinitionId`

Ketika operasi mengembalikan`suiteDefinitionId`, Anda mungkin melihat `id` bidang baru dalam setiap grup dan definisi kasus uji dalam grup root. Anda dapat menggunakan ini IDs untuk menjalankan subset definisi rangkaian pengujian Anda.

Contoh SDK Java: 

```
response = iotDeviceAdvisorClient.GetSuiteDefinition(
    GetSuiteDefinitionRequest.builder()
        .suiteDefinitionId("your-suite-definition-id")
        .build()
)
```

## Dapatkan titik akhir pengujian
<a name="device-advisor-workflow-get-test-endpoint"></a>

Gunakan operasi `GetEndpoint` API untuk mendapatkan titik akhir pengujian yang digunakan oleh perangkat Anda. Pilih titik akhir yang paling sesuai dengan pengujian Anda. Untuk menjalankan beberapa rangkaian pengujian secara bersamaan, gunakan titik akhir tingkat Perangkat dengan menyediakan,, atau`thing ARN`. `certificate ARN` `device role ARN` Untuk menjalankan rangkaian pengujian tunggal, jangan berikan argumen ke GetEndpoint operasi untuk memilih titik akhir tingkat Akun. 

Contoh SDK:

```
response = iotDeviceAdvisorClient.getEndpoint(GetEndpointRequest.builder()
.certificateArn("your-test-device-certificate-arn")
.thingArn("your-test-device-thing-arn")
.deviceRoleArn("your-device-role-arn") //if using SigV4 for MQTT over WebSocket                
.build())
```

## Memulai rangkaian uji coba
<a name="device-advisor-workflow-start-suite-run"></a>

Setelah Anda membuat definisi rangkaian pengujian dan mengonfigurasi perangkat pengujian Anda untuk terhubung ke titik akhir pengujian Device Advisor, jalankan rangkaian pengujian Anda dengan API. `StartSuiteRun` 

Untuk pelanggan MQTT, gunakan salah satu `certificateArn` atau `thingArn` untuk menjalankan rangkaian pengujian. Jika keduanya dikonfigurasi, sertifikat digunakan jika itu milik benda tersebut.

Untuk MQTT over WebSocket customer, gunakan `deviceRoleArn` untuk menjalankan test suite. Jika peran yang ditentukan berbeda dari peran yang ditentukan dalam definisi rangkaian pengujian, peran yang ditentukan akan mengesampingkan peran yang ditentukan.

Untuk`.parallelRun()`, gunakan `true` jika Anda menggunakan titik akhir tingkat Perangkat untuk menjalankan beberapa rangkaian pengujian secara paralel menggunakan satu. Akun AWS

Contoh SDK:

```
response = iotDeviceAdvisorClient.startSuiteRun(StartSuiteRunRequest.builder()
.suiteDefinitionId("your-suite-definition-id")
.suiteRunConfiguration(SuiteRunConfiguration.builder()
    .primaryDevice(DeviceUnderTest.builder()
        .certificateArn("your-test-device-certificate-arn")
        .thingArn("your-test-device-thing-arn")
        .deviceRoleArn("your-device-role-arn") //if using SigV4 for MQTT over WebSocket               
        .build())
    .parallelRun(true | false)    
    .build())
.build())
```

Simpan `suiteRunId` dari respon. Anda akan menggunakan ini untuk mengambil hasil test suite run ini.

## Menjalankan test suite
<a name="device-advisor-workflow-describe-suite"></a>

Setelah Anda memulai test suite run, Anda dapat memeriksa kemajuan dan hasilnya dengan `GetSuiteRun` API.

Contoh SDK:

```
// Using the SDK, call the GetSuiteRun API.

response = iotDeviceAdvisorClient.GetSuiteRun(
GetSuiteRunRequest.builder()
    .suiteDefinitionId("your-suite-definition-id")
    .suiteRunId("your-suite-run-id")
.build())
```

## Hentikan uji coba yang dijalankan
<a name="device-advisor-workflow-stop-suite-run"></a>

Untuk menghentikan rangkaian pengujian yang masih berlangsung, Anda dapat memanggil operasi `StopSuiteRun` API. Setelah Anda memanggil `StopSuiteRun` operasi, layanan memulai proses pembersihan. Saat layanan menjalankan proses pembersihan, rangkaian pengujian menjalankan pembaruan status ke`Stopping`. Proses pembersihan bisa memakan waktu beberapa menit. Setelah proses selesai, rangkaian pengujian menjalankan pembaruan status ke`Stopped`. Setelah test run benar-benar berhenti, Anda n memulai test suite run lainnya. Anda dapat memeriksa status suite run secara berkala menggunakan operasi `GetSuiteRun` API, seperti yang ditunjukkan pada bagian sebelumnya. 

Contoh SDK:

```
// Using the SDK, call the StopSuiteRun API.

response = iotDeviceAdvisorClient.StopSuiteRun(
StopSuiteRun.builder()
    .suiteDefinitionId("your-suite-definition-id")
    .suiteRunId("your-suite-run-id")
.build())
```

## Dapatkan laporan kualifikasi untuk menjalankan rangkaian tes kualifikasi yang sukses
<a name="device-advisor-workflow-qualification-report"></a>

Jika Anda menjalankan rangkaian pengujian kualifikasi yang berhasil diselesaikan, Anda dapat mengambil laporan kualifikasi dengan operasi `GetSuiteRunReport` API. Anda menggunakan laporan kualifikasi ini untuk memenuhi syarat perangkat Anda dengan program AWS IoT Core kualifikasi. Untuk menentukan apakah rangkaian pengujian Anda adalah rangkaian pengujian kualifikasi, periksa apakah `intendedForQualification` parameter disetel ke`true`. Setelah memanggil operasi `GetSuiteRunReport` API, Anda dapat mengunduh laporan dari URL yang dikembalikan hingga 90 detik. Jika lebih dari 90 detik berlalu dari waktu sebelumnya Anda memanggil `GetSuiteRunReport` operasi, panggil operasi lagi untuk mengambil URL baru yang valid. 

Contoh SDK:

```
// Using the SDK, call the getSuiteRunReport API. 

response = iotDeviceAdvisorClient.getSuiteRunReport( 
    GetSuiteRunReportRequest.builder() 
        .suiteDefinitionId("your-suite-definition-id")
        .suiteRunId("your-suite-run-id")
        .build()
)
```

# Alur kerja konsol terperinci Device Advisor
<a name="device-advisor-console-tutorial"></a>

Dalam tutorial ini, Anda akan membuat rangkaian pengujian khusus dan menjalankan pengujian terhadap perangkat yang ingin Anda uji di konsol. Setelah tes selesai, Anda dapat melihat hasil tes dan log terperinci.

**Topics**
+ [Prasyarat](#da-detailed-prereqs)
+ [Buat definisi rangkaian pengujian](#device-advisor-console-create-suite)
+ [Memulai rangkaian uji coba](#device-advisor-console-run-test-suite)
+ [Hentikan uji coba yang dijalankan (opsional)](#device-advisor-stop-test-run)
+ [Lihat detail dan log test suite run](#device-advisor-console-view-logs)
+ [Unduh laporan AWS IoT kualifikasi](#device-advisor-console-qualification-report)

## Prasyarat
<a name="da-detailed-prereqs"></a>

Untuk menyelesaikan tutorial ini, Anda perlu [membuat sesuatu dan sertifikat](https://docs.aws.amazon.com/iot/latest/developerguide/device-advisor-setting-up.html#da-create-thing-certificate).

## Buat definisi rangkaian pengujian
<a name="device-advisor-console-create-suite"></a>

Buat rangkaian rangkaian pengujian sehingga Anda dapat menjalankannya untuk perangkat dan melakukan verifikasi.

1. Di [AWS IoT konsol](https://console.aws.amazon.com//iot), di panel navigasi, perluas **Test**, **Device Advisor**, lalu pilih **Test** suites.  
![\[Antarmuka Device Advisor dengan opsi untuk membuat rangkaian pengujian untuk perangkat yang memenuhi syarat, menjalankan pengujian durasi panjang, dan rangkaian pengujian khusus.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/da-testsuite.png)

   Pilih **Create Test Suite**.

1. Pilih salah satu `Use the AWS Qualification test suite` atau`Create a new test suite`.

   **Untuk protokol, pilih **MQTT 3.1.1 atau MQTT 5**.**  
![\[“Buat rangkaian pengujian” dengan opsi untuk memilih jenis rangkaian pengujian (AWS IoT Core kualifikasi, Durasi panjang, atau Kustom) dan protokol (MQTT 3.1.1 atau MQTT 5).\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/da-create-test-suite.png)

   Pilih `Use the AWS Qualification test suite` untuk memenuhi syarat dan daftar perangkat Anda ke Katalog Perangkat AWS Mitra. Dengan memilih opsi ini, kasus uji yang diperlukan untuk kualifikasi perangkat Anda ke program AWS IoT Core kualifikasi telah dipilih sebelumnya. Kelompok uji dan kasus uji tidak dapat ditambahkan atau dihapus. Anda masih perlu mengkonfigurasi properti test suite.

   Pilih `Create a new test suite` untuk membuat dan mengkonfigurasi rangkaian pengujian kustom. Sebaiknya mulai dengan opsi ini untuk pengujian awal dan pemecahan masalah. Rangkaian pengujian khusus harus memiliki setidaknya satu kelompok uji, dan setiap kelompok uji harus memiliki setidaknya satu kasus uji. Untuk tujuan tutorial ini, kita akan memilih opsi ini dan memilih **Berikutnya**.  
![\[Konfigurasikan halaman rangkaian pengujian yang menunjukkan langkah-langkah untuk membuat rangkaian pengujian dengan grup pengujian dan kasus untuk menguji perangkat IoT.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/da-configure-test-suite.png)

1. Pilih **properti Test suite**. Anda harus membuat properti test suite saat membuat test suite.  
![\[Antarmuka “Configure test suite” yang menampilkan opsi untuk membuat grup pengujian dan menambahkan kasus uji untuk menguji fungsionalitas perangkat IoT.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/da-test-suite-properties.png)

   Di bawah **properti Test suite**, isi yang berikut ini:
   + **Nama suite uji**: Anda dapat membuat suite dengan nama khusus.
   + Batas **waktu** (opsional): Batas waktu dalam hitungan detik untuk setiap kasus uji dalam rangkaian pengujian saat ini. Jika Anda tidak menentukan nilai batas waktu, nilai default akan digunakan.
   + **Tag** (opsional): Tambahkan tag ke rangkaian pengujian.  
![\[Jendela berjudul “Uji properti suite” yang menampilkan bidang untuk menentukan nama rangkaian pengujian, batas waktu, dan tag khusus untuk rangkaian demo Device Advisor.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/da-test-suite-properties-1.png)

   Setelah selesai, pilih **Perbarui properti**.

1. Untuk mengubah konfigurasi tingkat grup, di bawah`Test group 1`, pilih **Edit**. Kemudian, masukkan **Nama** untuk memberi grup nama khusus. 

   Secara opsional, Anda juga dapat memasukkan nilai **Timeout** dalam hitungan detik di bawah grup pengujian yang dipilih. Jika Anda tidak menentukan nilai batas waktu, nilai default akan digunakan.  
![\[Antarmuka “Konfigurasi rangkaian pengujian” untuk membuat grup pengujian dan kasus untuk memvalidasi fungsionalitas perangkat IoT.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/da-edit-test-group.png)

   Pilih **Selesai**.

1. Seret salah satu kasus uji yang tersedia dari **Kasus uji** ke dalam grup uji.  
![\[Antarmuka konfigurasi untuk membuat rangkaian pengujian di Device Advisor, dengan opsi untuk menambahkan grup pengujian dan kasus uji untuk menguji perangkat IoT.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/da-configure-test-suite-step5.png)

1. Untuk mengubah konfigurasi tingkat kasus uji untuk kasus uji yang ditambahkan ke grup pengujian, pilih **Edit**. Kemudian, masukkan **Nama** untuk memberi grup nama khusus. 

   Secara opsional, Anda juga dapat memasukkan nilai **Timeout** dalam hitungan detik di bawah grup pengujian yang dipilih. Jika Anda tidak menentukan nilai batas waktu, nilai default akan digunakan.  
![\[Antarmuka konfigurasi rangkaian uji dengan opsi untuk mengonfigurasi grup pengujian, kasus uji, pengaturan batas waktu, dan titik awal untuk eksekusi rangkaian pengujian.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/da-edit-test-case.png)

   Pilih **Selesai**.
**catatan**  
Untuk menambahkan lebih banyak grup pengujian ke rangkaian pengujian, pilih **Tambahkan grup pengujian**. Ikuti langkah-langkah sebelumnya untuk membuat dan mengonfigurasi lebih banyak grup pengujian, atau untuk menambahkan lebih banyak kasus uji ke satu atau beberapa grup pengujian. Kelompok uji dan kasus uji dapat disusun ulang dengan memilih dan menyeret kasus uji ke posisi yang diinginkan. Device Advisor menjalankan pengujian sesuai urutan penentuan grup pengujian dan kasus pengujian.

1. Pilih **Berikutnya**.

1. Pada **Langkah 3**, konfigurasikan peran perangkat yang akan digunakan Device Advisor untuk melakukan tindakan AWS IoT MQTT atas nama perangkat pengujian Anda.

   Jika Anda memilih kasus uji **MQTT Connect** hanya **di Langkah** 2, tindakan **Connect** akan dicentang secara otomatis karena izin tersebut diperlukan pada peran perangkat untuk menjalankan rangkaian pengujian ini. Jika Anda memilih kasus uji lainnya, tindakan yang diperlukan terkait akan diperiksa. Pastikan bahwa nilai nilai sumber daya untuk setiap tindakan disediakan. Misalnya, untuk tindakan **Connect**, berikan id klien yang akan terhubung dengan perangkat Anda ke titik akhir Device Advisor. Anda dapat memberikan beberapa nilai dengan menggunakan koma untuk memisahkan nilai, dan Anda dapat memberikan nilai awalan menggunakan karakter wildcard (\$1) juga. Misalnya, untuk memberikan izin untuk mempublikasikan topik apa pun yang dimulai`MyTopic`, Anda dapat memberikan “`MyTopic*`” sebagai nilai sumber daya.  
![\[Langkah “Pilih peran perangkat” di Device Advisor untuk membuat rangkaian pengujian, dengan opsi untuk membuat peran baru atau memilih peran yang ada, dan bidang untuk menentukan nama peran, izin, dan detail sumber daya.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/da-connect-role.png)

   Jika Anda telah membuat peran perangkat sebelumnya dan ingin menggunakan peran itu, pilih **Pilih peran yang ada dan pilih peran** perangkat Anda di bawah **Pilih peran**.  
![\[Halaman untuk memilih peran perangkat untuk pengujian Device Advisor, dengan opsi untuk membuat peran baru atau memilih yang sudah ada.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/da-existing-role.png)

   Konfigurasikan peran perangkat Anda menggunakan salah satu dari dua opsi yang disediakan dan pilih **Berikutnya**.

1. Pada **Langkah 4**, pastikan konfigurasi yang disediakan di setiap langkah akurat. Untuk mengedit konfigurasi yang disediakan untuk langkah tertentu, pilih **Edit** untuk langkah yang sesuai.

   Setelah Anda memverifikasi konfigurasi, pilih **Create test suite**.

   Test suite harus berhasil dibuat dan Anda akan diarahkan ke halaman **Test suites** di mana Anda dapat melihat semua rangkaian pengujian yang telah dibuat.

   Jika pembuatan rangkaian pengujian gagal, pastikan rangkaian pengujian, grup pengujian, kasus pengujian, dan peran perangkat telah dikonfigurasi sesuai dengan instruksi sebelumnya.

## Memulai rangkaian uji coba
<a name="device-advisor-console-run-test-suite"></a>

1. Di [AWS IoT konsol](https://console.aws.amazon.com//iot), di panel navigasi, perluas **Test**, **Device Advisor**, lalu pilih **Test** suites.

1. Pilih rangkaian pengujian yang ingin Anda lihat detail rangkaian pengujiannya.  
![\[Konsol yang menampilkan rangkaian pengujian tunggal bernama “Suite demo penasihat perangkat” yang dibuat pada 11 Mei 2021.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/da-test-suites.png)

   Halaman detail rangkaian pengujian menampilkan semua informasi yang terkait dengan rangkaian pengujian.

1. Pilih **Tindakan**, lalu **Jalankan rangkaian pengujian**.  
![\[Halaman demo suite dengan tombol “Run test suite” dan log aktivitas kosong yang tidak menunjukkan rangkaian pengujian sebelumnya berjalan.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/da-run-test-suites.png)

1. Di bawah **konfigurasi Jalankan**, Anda harus memilih AWS IoT sesuatu atau sertifikat untuk diuji menggunakan Device Advisor. Jika Anda tidak memiliki barang atau sertifikat yang ada, pertama-tama [buat AWS IoT Core sumber daya](device-advisor-setting-up.md). 

   Di bagian **titik akhir Uji**, pilih titik akhir yang paling sesuai dengan kasus Anda. Jika Anda berencana untuk menjalankan beberapa rangkaian pengujian secara bersamaan menggunakan AWS akun yang sama di masa mendatang, pilih Titik akhir **tingkat perangkat**. Jika tidak, jika Anda berencana untuk hanya menjalankan satu rangkaian pengujian pada satu waktu, pilih Titik akhir **tingkat Akun**.

   Konfigurasikan perangkat pengujian Anda dengan titik akhir pengujian Device Advisor yang dipilih.

   Setelah Anda memilih sesuatu atau sertifikat dan memilih titik akhir Device Advisor, pilih **Jalankan** pengujian.  
![\[Konfigurasi untuk menjalankan rangkaian pengujian AWS IoT Core, memungkinkan Anda memilih perangkat uji (benda atau sertifikat), memilih titik akhir pengujian (tingkat akun atau tingkat perangkat), dan menambahkan tag secara opsional.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/da-choose-thing-certificate.png)

1. Pilih **Buka hasil** di spanduk atas untuk melihat detail uji coba.  
![\[Rincian rangkaian pengujian khusus berjudul 'Device Advisor demo suite' sedang berlangsung dengan status 'Pending'.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/da-test-run-results.png)

## Hentikan uji coba yang dijalankan (opsional)
<a name="device-advisor-stop-test-run"></a>

1. Di [AWS IoT konsol](https://console.aws.amazon.com//iot), di panel navigasi, perluas **Uji**, **Penasihat Perangkat**, lalu pilih **Uji berjalan dan** hasil.

1. Pilih rangkaian pengujian yang sedang berlangsung yang ingin Anda hentikan.  
![\[Hasil pengujian berjalan di konsol Device Advisor.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/da-test-suite-to-stop.PNG)

1. Pilih **Actions**, lalu **Stop test suite**.  
![\[Hasil pengujian berjalan di konsol Device Advisor.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/da-stop-test-suite.PNG)

1. Proses pembersihan akan memakan waktu beberapa menit untuk diselesaikan. Sementara proses pembersihan berjalan, status uji coba akan`STOPPING`. Tunggu hingga proses pembersihan selesai dan status rangkaian pengujian berubah menjadi `STOPPED` status sebelum memulai rangkaian baru.  
![\[Hasil pengujian yang dihentikan berjalan di konsol Device Advisor.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/da-stopped-test-suite.PNG)

## Lihat detail dan log test suite run
<a name="device-advisor-console-view-logs"></a>

1. Di [AWS IoT konsol](https://console.aws.amazon.com//iot), di panel navigasi, perluas **Uji**, **Penasihat Perangkat**, lalu pilih **Uji berjalan dan** hasil.

   Halaman ini menampilkan:
   + Jumlah hal IoT
   + Jumlah sertifikat IoT
   + Jumlah rangkaian pengujian yang sedang berjalan
   + Semua rangkaian pengujian berjalan yang telah dibuat

1. Pilih rangkaian pengujian yang ingin Anda lihat detail dan log run.  
![\[Bagian Test run dan results yang menampilkan detail rangkaian pengujian bernama “Device Advisor demo suite” yang sedang berlangsung.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/da-test-suite-run.png)

   Halaman ringkasan run menampilkan status rangkaian pengujian yang dijalankan saat ini. Halaman ini otomatis menyegarkan setiap 10 detik. Kami menyarankan Anda memiliki mekanisme yang dibuat untuk perangkat Anda untuk mencoba menghubungkan ke titik akhir pengujian kami setiap lima detik selama satu hingga dua menit. Kemudian Anda dapat menjalankan beberapa kasus uji secara berurutan secara otomatis.  
![\[Log kasus uji yang menunjukkan tes MQTT Connect yang berhasil tanpa pesan sistem ditampilkan.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/da-run-summary.png)

1. Untuk mengakses CloudWatch log untuk menjalankan rangkaian pengujian, pilih **Log rangkaian pengujian**.

   Untuk mengakses CloudWatch log untuk kasus uji apa pun, pilih **Log kasus uji**.

1. Berdasarkan hasil pengujian Anda, [pecahkan masalah](https://docs.aws.amazon.com/iot/latest/developerguide/iot_troubleshooting.html#device-advisor-troubleshooting) perangkat Anda hingga semua pengujian lulus.

## Unduh laporan AWS IoT kualifikasi
<a name="device-advisor-console-qualification-report"></a>

Jika Anda memilih opsi **Use the AWS IoT Qualification test suite** saat membuat rangkaian pengujian dan dapat menjalankan rangkaian tes kualifikasi, Anda dapat mengunduh laporan kualifikasi dengan memilih **Unduh laporan kualifikasi** di halaman ringkasan uji coba.

![\[Hasil tes Program Kualifikasi yang menunjukkan tes lulus untuk MQTT, TLS, dan komponen lainnya.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/da-qualification-report.png)


# Durasi panjang menguji alur kerja konsol
<a name="device-advisor-long-duration-console-tutorial"></a>

Tutorial ini membantu Anda memulai dengan tes durasi panjang pada Device Advisor menggunakan konsol. Untuk menyelesaikan tutorial, ikuti langkah-langkah di[Menyiapkan](device-advisor-setting-up.md).

1.  Di panel navigasi [AWS IoT konsol](https://console.aws.amazon.com/iot), perluas **Test**, lalu **Device Advisor**, lalu **Test** suite. Pada halaman, pilih **Buat rangkaian pengujian durasi panjang**.   
![\[Bagian Buat rangkaian pengujian durasi panjang pada konsol Device Advisor.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/create-ld-ts.png)

1.  Pada halaman **Create test suite**, pilih **Long duration test suite** dan pilih **Next**. 

   **Untuk protokol, pilih **MQTT 3.1.1 atau MQTT 5**.**  
![\[Langkah Buat rangkaian pengujian konsol Device Advisor.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/choose-ld-ts.png)

1. Lakukan hal berikut pada halaman **Configure test suite**:

   1. Perbarui bidang **Test suite name**.

   1. Perbarui bidang **nama grup Uji**.

   1. Pilih **Operasi perangkat** yang dapat dilakukan perangkat. Ini akan memilih tes yang akan dijalankan.

   1. Pilih opsi **Pengaturan**.  
![\[Langkah Buat rangkaian pengujian konsol Device Advisor.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/configure-ld-ts.png)

1. (Opsional) Masukkan jumlah waktu maksimum Device Advisor harus menunggu pengujian dasar selesai. Pilih **Simpan**.  
![\[Kotak “Timeout-opsional” untuk “Tes dasar” konsol Device Advisor.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/timeout-ld-ts.png)

1.  Lakukan hal berikut di bagian **Tes lanjutan** dan **Pengaturan tambahan**. 

   1. Pilih atau batalkan pilihan **Tes lanjutan** yang ingin Anda jalankan sebagai bagian dari pengujian ini.

   1. **Edit** konfigurasi untuk pengujian bila berlaku.

   1. Konfigurasikan **waktu eksekusi tambahan** di bawah bagian **Pengaturan tambahan**.

   1. Pilih **Berikutnya** untuk melakukan langkah selanjutnya.  
![\[Antarmuka Device Advisor yang memungkinkan Anda mengonfigurasi dan menjalankan pengujian pada perangkat IoT.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/additional-ld-ts.png)

1.  Pada langkah ini, **Buat peran baru** atau **Pilih peran yang ada**. Lihat [Membuat peran IAM untuk digunakan sebagai peran perangkat Anda](device-advisor-setting-up.md#da-iam-role) untuk detail.   
![\[Langkah peran perangkat di mana Anda dapat membuat peran baru atau memilih peran yang ada untuk perangkat yang sedang diuji. Peran tersebut memberikan izin kepada Device Advisor untuk melakukan tindakan MQTT seperti Connect, Publish, dan Subscribe atas nama perangkat pengujian.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/devicerole-ld-ts.png)

1.  Tinjau semua konfigurasi yang dibuat hingga langkah ini dan pilih **Create test suite**.   
![\[Halaman “Tinjau” tempat Anda dapat meninjau semua detail konfigurasi Device Advisor.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/finalconfigure1-ld-ts.png)  
![\[Halaman konfigurasi tempat Anda dapat melihat semua detail untuk Device Advisor.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/finalconfigure2-ld-ts.png)

1.  Rangkaian pengujian yang dibuat berada di bawah bagian **Test suites**. Pilih suite untuk melihat detail.   
![\[Rangkaian pengujian baru bernama “Demo Durasi Panjang” telah berhasil dibuat di Device Advisor.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/finalts-ld-ts.png)

1.  Untuk menjalankan rangkaian pengujian yang dibuat, pilih **Tindakan** lalu **Jalankan rangkaian pengujian**.   
![\[Menu tarik-turun Tindakan dari rangkaian pengujian baru bernama “Demo Durasi Panjang” di antarmuka Device Advisor.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/runts-ld-ts.png)

1.  Pilih opsi konfigurasi di halaman **konfigurasi Jalankan**. 

   1. Pilih **Things** atau **Certificate** untuk menjalankan tes.

   1. **Pilih titik akhir tingkat **Akun atau titik akhir tingkat** Perangkat.**

   1. Pilih **Jalankan tes** untuk menjalankan tes.  
![\[Halaman konfigurasi Jalankan di antarmuka Device Advisor. Halaman ini menampilkan Pilih perangkat uji, Things, Test endpoint, dan Tags.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/runconfiguration-ld-ts.png)

1.  Untuk melihat hasil rangkaian pengujian yang dijalankan, pilih **Uji berjalan dan hasil** di panel navigasi kiri. Pilih rangkaian pengujian yang dijalankan untuk melihat detail hasil.   
![\[Kasus uji “Demo Durasi Panjang” pada halaman Uji berjalan dan hasil.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/results-ld-ts.png)

1.  Langkah sebelumnya memunculkan halaman ringkasan pengujian. Semua detail uji coba ditampilkan di halaman ini. Saat konsol meminta untuk memulai koneksi perangkat, sambungkan perangkat Anda ke titik akhir yang disediakan. Kemajuan tes terlihat di halaman ini.   
![\[Halaman ringkasan tes “Demo Durasi Panjang” yang Anda buat.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/summary-ld-ts.png)

1.  Tes durasi panjang memberikan **ringkasan log Uji** tambahan di panel samping yang menampilkan semua peristiwa penting yang terjadi antara perangkat dan broker dalam waktu dekat. Untuk melihat log detail yang lebih mendalam, klik **Log kasus uji**.   
![\[Bagian ringkasan log Uji pada halaman tes “Demo Durasi Panjang”.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/log-ld-ts.png)

# Titik akhir VPC Penasihat Perangkat ()AWS PrivateLink
<a name="device-advisor-vpc-endpoint"></a>

Anda dapat membuat koneksi pribadi antara VPC Anda dan titik akhir AWS IoT Core Device Advisor pengujian (bidang data) dengan membuat titik akhir *VPC* antarmuka. Anda dapat menggunakan endpoint ini untuk memvalidasi AWS IoT perangkat untuk konektivitas  yang andal dan aman AWS IoT Core sebelum menerapkan perangkat ke produksi. [Pengujian bawaan Device Advisor membantu Anda memvalidasi perangkat lunak perangkat Anda terhadap praktik terbaik untuk penggunaan [TLS, [MQTT](https://docs.aws.amazon.com/iot/latest/developerguide/protocols.html)](https://docs.aws.amazon.com/iot/latest/developerguide/protocols.html), [Device](https://docs.aws.amazon.com/iot/latest/developerguide/iot-device-shadows.html) Shadow, dan Pekerjaan.AWS IoT](https://docs.aws.amazon.com/iot/latest/developerguide/iot-jobs.html) 

[AWS PrivateLink](https://aws.amazon.com/privatelink)memberi daya pada titik akhir antarmuka yang digunakan dengan perangkat IoT Anda. Layanan ini membantu Anda mengakses titik akhir AWS IoT Core Device Advisor pengujian secara pribadi tanpa gateway internet, perangkat NAT, koneksi VPN, atau koneksi. Direct Connect Instans di VPC Anda yang mengirim paket TCP dan MQTT tidak memerlukan alamat IP publik untuk berkomunikasi dengan titik akhir pengujian. AWS IoT Core Device Advisor Lalu lintas antara VPC Anda dan AWS IoT Core Device Advisor  tidak pergi. AWS Cloud Setiap komunikasi TLS dan MQTT antara perangkat IoT dan kasus uji Device Advisor tetap berada dalam sumber daya di Anda. Akun AWS

Setiap titik akhir antarmuka diwakili oleh satu atau lebih [antarmuka jaringan elastis](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html) dalam subnet Anda.

*Untuk mempelajari lebih lanjut tentang menggunakan titik akhir VPC antarmuka, lihat Titik akhir [VPC Antarmuka () di AWS PrivateLink Panduan Pengguna VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html) Amazon.* 

## Pertimbangan untuk titik akhir AWS IoT Core Device Advisor VPC
<a name="vpc-considerations"></a>

Tinjau [properti dan batasan titik akhir antarmuka](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#vpce-interface-limitations) di Panduan *Pengguna Amazon VPC* sebelum menyiapkan titik akhir VPC antarmuka. Pertimbangkan hal-hal berikut sebelum Anda melanjutkan: 
+ AWS IoT Core Device Advisor saat ini mendukung panggilan ke titik akhir pengujian Device Advisor (bidang data) dari VPC Anda. Broker pesan menggunakan komunikasi pesawat data untuk mengirim dan menerima data. Ia melakukan ini dengan bantuan paket TLS dan MQTT. Titik akhir VPC untuk AWS IoT Core Device Advisor menghubungkan AWS IoT perangkat Anda ke titik akhir pengujian Device Advisor. [Tindakan API bidang kontrol](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iotdeviceadvisor/index.html) tidak digunakan oleh titik akhir VPC ini. Untuk membuat atau menjalankan rangkaian pengujian atau bidang kontrol lainnya APIs, gunakan konsol, AWS SDK, atau Antarmuka Baris AWS Perintah melalui internet publik. 
+ Berikut ini Wilayah AWS mendukung titik akhir VPC untuk: AWS IoT Core Device Advisor
  + AS Timur (Virginia Utara)
  + AS Barat (Oregon)
  + Asia Pasifik (Tokyo)
  + Eropa (Irlandia)
+  Device Advisor mendukung MQTT dengan sertifikat klien X.509 dan sertifikat server RSA. 
+ [Kebijakan titik akhir VPC](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html) tidak didukung saat ini. 
+ [Periksa [prasyarat](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#prerequisites-interface-endpoints) titik akhir VPC untuk petunjuk tentang cara membuat sumber daya yang menghubungkan titik akhir VPC.](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint-aws) Anda harus membuat VPC dan subnet pribadi untuk menggunakan titik akhir AWS IoT Core Device Advisor VPC. 
+ Ada kuota pada AWS PrivateLink sumber daya Anda. Untuk informasi lebih lanjut, lihat [AWS PrivateLink kuota](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-limits-endpoints.html). 
+ Titik akhir VPC hanya mendukung lalu lintas. IPv4 

## Buat titik akhir VPC antarmuka untuk AWS IoT Core Device Advisor
<a name="vpc-interface"></a>

Untuk memulai dengan titik akhir VPC, [buat titik akhir VPC antarmuka](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html). Selanjutnya, pilih AWS IoT Core Device Advisor sebagai Layanan AWS. Jika Anda menggunakan AWS CLI, hubungi [describe-vpc-endpoint-services](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpc-endpoint-services.html)untuk mengonfirmasi bahwa AWS IoT Core Device Advisor ada di Availability Zone di Anda Wilayah AWS. Konfirmasikan bahwa grup keamanan yang terpasang pada titik akhir memungkinkan [komunikasi protokol TCP](https://docs.aws.amazon.com/iot/latest/developerguide/protocols.html) untuk lalu lintas MQTT dan TLS. Misalnya, di Wilayah AS Timur (Virginia N.), gunakan perintah berikut: 

```
aws ec2 describe-vpc-endpoint-services --service-name com.amazonaws.us-east-1.deviceadvisor.iot
```

Anda dapat membuat titik akhir VPC untuk AWS IoT Core menggunakan nama layanan berikut: 
+ com.amazonaws. *wilayah .deviceadvisor.iot*

Secara default, DNS pribadi dihidupkan untuk titik akhir. Ini memastikan bahwa penggunaan titik akhir pengujian default tetap berada dalam subnet pribadi Anda. Untuk mendapatkan titik akhir tingkat akun atau perangkat Anda, gunakan konsol, AWS CLI atau AWS SDK. Misalnya, jika Anda menjalankan [get-endpoint](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iotdeviceadvisor/get-endpoint.html) dalam subnet publik atau di internet publik, Anda bisa mendapatkan endpoint dan menggunakannya untuk terhubung ke Device Advisor. Untuk informasi selengkapnya, lihat [Mengakses layanan melalui titik akhir antarmuka](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#access-service-though-endpoint) dalam *Panduan Pengguna Amazon VPC*. 

Untuk menghubungkan klien MQTT ke antarmuka titik akhir VPC, AWS PrivateLink layanan membuat catatan DNS di zona host pribadi yang dilampirkan ke VPC Anda. Catatan DNS ini mengarahkan permintaan AWS IoT perangkat ke titik akhir VPC. 

## Mengontrol akses ke AWS IoT Core Device Advisor lebih dari titik akhir VPC
<a name="vpc-controlling-access"></a>

[Anda dapat membatasi akses perangkat ke AWS IoT Core Device Advisor dan mengizinkan akses hanya melalui titik akhir VPC dengan menggunakan tombol konteks kondisi VPC.](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) AWS IoT Core mendukung kunci konteks terkait VPC berikut: 
+  [SourceVpc](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcevpc) 
+  [SourceVpce](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcevpce) 
+  [VPCSourcelp](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-vpcsourceip) 

**catatan**  
 AWS IoT Core Device Advisor tidak mendukung [kebijakan titik akhir VPC](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html#vpc-endpoint-policies) saat ini. 

Kebijakan berikut memberikan izin untuk terhubung AWS IoT Core Device Advisor menggunakan ID klien yang cocok dengan nama benda. Ini juga menerbitkan ke topik apa pun yang diawali dengan nama benda. Kebijakan ini bergantung pada perangkat yang terhubung ke titik akhir VPC dengan ID titik akhir VPC tertentu. Kebijakan ini menolak upaya koneksi ke titik akhir AWS IoT Core Device Advisor pengujian publik Anda. 

****  

```
{
"Version":"2012-10-17",		 	 	 
    "Statement": [
        {
"Effect": "Allow",
            "Action": [
                "iot:Connect"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:client/${iot:Connection.Thing.ThingName}"
            ],
            "Condition": {
"StringEquals": {
"aws:SourceVpce": "vpce-1a2b3c4d"
            }
        }
            
        },
        {
"Effect": "Allow",
            "Action": [
                "iot:Publish"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:topic/${iot:Connection.Thing.ThingName}/*"
            ]
        }
    ]
}
```

# Kasus uji Device Advisor
<a name="device-advisor-tests"></a>

Device Advisor menyediakan pengujian bawaan dalam enam kategori.
+ [TLS](device-advisor-tests-tls.md)
+ [MQTT](device-advisor-tests-mqtt.md)
+ [Bayangan](device-advisor-tests-shadow.md)
+ [Eksekusi Job](device-advisor-tests-job-execution.md)
+ [Izin dan kebijakan](device-advisor-tests-permissions-policies.md)
+ [Tes durasi panjang](device-advisor-tests-long-duration.md)

## Kasus uji Penasihat Perangkat agar memenuhi syarat untuk Program Kualifikasi AWS Perangkat.
<a name="qualifiying-test-cases"></a>

Perangkat Anda harus lulus tes berikut agar memenuhi syarat sesuai dengan [Program Kualifikasi AWS Perangkat](https://aws.amazon.com/partners/programs/dqp/).

**catatan**  
Ini adalah daftar tes kualifikasi yang direvisi.
+ [TLS Connect](device-advisor-tests-tls.md#TLS_Connect) (“TLS Connect”)
+ [Sertifikat Server Nama Subjek Salah TLS](device-advisor-tests-tls.md#TLS_Incorrect_Subject_Name) (“Nama Umum Subjek Salah (CN) /Nama Alternatif Subjek (SAN)”)
+ [Sertifikat Server Tidak Aman TLS](device-advisor-tests-tls.md#TLS_Unsecure_Server_Cert) (“Tidak Ditandatangani Oleh CA yang Diakui”)
+ [Dukungan Perangkat TLS untuk AWS IoT Cipher Suites](device-advisor-tests-tls.md#TLS_DeviceSupport_For_IOT) (“Dukungan Perangkat TLS AWS IoT untuk Suite Cipher yang direkomendasikan”)
+ [TLS Menerima Fragmen Ukuran Maksimum](device-advisor-tests-tls.md#TLS_MaximumSize) (“TLS Menerima Fragmen Ukuran Maksimum”)
+ Sertifikat Server [Kedaluwarsa TLS (“Sertifikat server](device-advisor-tests-tls.md#TLS_Expired_Server_Cert) kedaluwarsa”)
+ [Sertifikat Server Ukuran Besar TLS](device-advisor-tests-tls.md#TLS_LargeServerCert) (“Sertifikat Server Ukuran Besar TLS”)
+ [MQTT Connect](device-advisor-tests-mqtt.md#MQTT_Connect) (“Perangkat kirim CONNECT AWS IoT Core ke (Happy case)”)
+ [MQTT Berlangganan (“Bisa Berlangganan](device-advisor-tests-mqtt.md#MQTT_Subscribe) (Happy Case)”)
+ [MQTT Publikasikan](device-advisor-tests-mqtt.md#MQTT_Publish) (“QoS0 (Happy Case)”)
+ [MQTT Connect Jitter Retries (“Perangkat menghubungkan percobaan ulang dengan jitter](device-advisor-tests-mqtt.md#MQTT_ConnectJitterBackoff) backoff - Tidak ada respons CONNACK”)

# TLS
<a name="device-advisor-tests-tls"></a>

Gunakan tes ini untuk menentukan apakah protokol keamanan lapisan transport (TLS) antara perangkat Anda dan AWS IoT aman.

**catatan**  
Device Advisor sekarang mendukung TLS 1.3.

## Jalan Bahagia
<a name="happy-path"></a>

**TLS Connect**  <a name="TLS_Connect"></a>
Memvalidasi jika perangkat yang diuji dapat menyelesaikan jabat tangan TLS. AWS IoT Tes ini tidak memvalidasi implementasi MQTT perangkat klien.  

**Example Definisi kasus uji API:**  
`EXECUTION_TIMEOUT`memiliki nilai default 5 menit. Untuk hasil terbaik, kami merekomendasikan nilai batas waktu 2 menit. 

```
"tests":[
   {
      "name":"my_tls_connect_test",
      "configuration": {
         // optional:
         "EXECUTION_TIMEOUT":"300",  //in seconds
      },
      "test":{
         "id":"TLS_Connect",
         "version":"0.0.0"
      }
   }
]
```

**Example Output kasus uji:**  
+ **Lulus** — Perangkat yang diuji menyelesaikan jabat tangan TLS dengan. AWS IoT
+ **Lulus dengan peringatan** — Perangkat yang diuji menyelesaikan jabat tangan TLS dengan AWS IoT, tetapi ada pesan peringatan TLS dari perangkat atau. AWS IoT
+ **Gagal** - Perangkat yang diuji gagal menyelesaikan jabat tangan TLS AWS IoT karena kesalahan jabat tangan.

**TLS Menerima Fragmen Ukuran Maksimum**  <a name="TLS_MaximumSize"></a>
Kasus uji ini memvalidasi bahwa perangkat Anda dapat menerima dan memproses fragmen ukuran maksimum TLS. Perangkat pengujian Anda harus berlangganan topik yang telah dikonfigurasi sebelumnya dengan QoS 1 untuk menerima muatan besar. Anda dapat menyesuaikan payload dengan konfigurasi`${payload}`.  

**Example Definisi kasus uji API:**  
`EXECUTION_TIMEOUT`memiliki nilai default 5 menit. Untuk hasil terbaik, kami merekomendasikan nilai batas waktu 2 menit. 

```
"tests":[
   {
      "name":"TLS Receive Maximum Size Fragments",
      "configuration": {
         // optional:
         "EXECUTION_TIMEOUT":"300",  //in seconds
         "PAYLOAD_FORMAT":"{"message":"${payload}"}", // A string with a placeholder ${payload}, or leave it empty to receive a plain string.
         "TRIGGER_TOPIC": "test_1" // A topic to which a device will subscribe, and to which a test case will publish a large payload.
      },
      "test":{
         "id":"TLS_Receive_Maximum_Size_Fragments",
         "version":"0.0.0"
      }
   }
]
```

## Cipher Suite
<a name="cipher-suites"></a>

**TLS Device Support untuk Cipher Suites yang AWS IoT direkomendasikan**  <a name="TLS_DeviceSupport_For_IOT"></a>
[Memvalidasi bahwa cipher suite dalam pesan TLS Client Hello dari perangkat yang diuji berisi cipher suite yang direkomendasikan.AWS IoT](transport-security.md) Ini memberikan lebih banyak wawasan tentang cipher suite yang didukung oleh perangkat.  

**Example Definisi kasus uji API:**  
`EXECUTION_TIMEOUT`memiliki nilai default 5 menit. Kami merekomendasikan nilai batas waktu 2 menit.

```
"tests":[
   {
      "name":"my_tls_support_aws_iot_cipher_suites_test",
      "configuration": {
         // optional:
         "EXECUTION_TIMEOUT":"300",  // in seconds
      },
      "test":{
         "id":"TLS_Support_AWS_IoT_Cipher_Suites",
         "version":"0.0.0"
      }
   }
]
```

**Example Output kasus uji:**  
+ **Lulus** — Perangkat di bawah rangkaian cipher pengujian berisi setidaknya satu dari rangkaian AWS IoT sandi yang direkomendasikan dan tidak berisi rangkaian sandi yang tidak didukung.
+ **Lulus dengan peringatan** - Suite cipher perangkat berisi setidaknya satu AWS IoT cipher suite tetapi:

  1. Itu tidak mengandung suite cipher yang direkomendasikan

  1. Ini berisi cipher suite yang tidak didukung oleh. AWS IoT

  Kami menyarankan Anda memverifikasi bahwa setiap cipher suite yang tidak didukung aman. 
+ **Gagal** - Perangkat di bawah rangkaian cipher pengujian tidak berisi rangkaian sandi yang AWS IoT didukung.

## Sertifikat Server Ukuran Lebih Besar
<a name="larger-size"></a>

**Sertifikat Server Ukuran Besar TLS**  <a name="TLS_LargeServerCert"></a>
Validasi di perangkat Anda dapat menyelesaikan jabat tangan TLS AWS IoT saat menerima dan memproses sertifikat server ukuran yang lebih besar. Ukuran sertifikat server (dalam byte) yang digunakan oleh pengujian ini lebih besar daripada yang saat ini digunakan dalam kasus uji **TLS Connect** dan IoT Core sebesar 20 Selama kasus pengujian ini, AWS IoT uji ruang buffer perangkat Anda untuk TLS Jika ruang buffer cukup besar, jabat tangan TLS tidak ada kesalahan. Pengujian ini tidak memvalidasi implementasi MQTT perangkat. Kasus uji ds setelah proses jabat tangan TLS selesai.  

**Example Definisi kasus uji API:**  
`EXECUTION_TIMEOUT`memiliki nilai default 5 menit. Untuk hasil terbaik, kami merekomendasikan nilai batas waktu 2 menit. Jika kasus pengujian ini gagal tetapi kasus uji **TLS Connect** lolos, kami sarankan Anda meningkatkan batas ruang buffer perangkat untuk TLS Meningkatkan batas ruang buffer memastikan bahwa perangkat Anda dapat memproses sertifikat server ukuran yang lebih besar jika ukurannya bertambah.

```
"tests":[
   {
      "name":"my_tls_large_size_server_cert_test",
      "configuration": {
         // optional:
         "EXECUTION_TIMEOUT":"300",  // in seconds
      },
      "test":{
         "id":"TLS_Large_Size_Server_Cert",
         "version":"0.0.0"
      }
   }
]
```

**Example Output kasus uji:**  
+ **Lulus** — Perangkat yang diuji menyelesaikan jabat tangan TLS dengan. AWS IoT
+ **Lulus dengan peringatan** — Perangkat yang diuji menyelesaikan jabat tangan TLS dengan AWS IoT, tetapi ada pesan peringatan TLS baik dari perangkat atau. AWS IoT
+ **Gagal** — Perangkat yang diuji gagal menyelesaikan jabat tangan TLS AWS IoT karena kesalahan selama proses jabat tangan.

## Sertifikat Server TLS Tidak Aman
<a name="unsecure-server"></a>

**Tidak Ditandatangani Oleh CA yang Diakui**  <a name="TLS_Unsecure_Server_Cert"></a>
Memvalidasi bahwa perangkat yang sedang diuji menutup sambungan jika disajikan dengan sertifikat server tanpa tanda tangan yang valid dari ATS CA. Perangkat hanya boleh terhubung ke titik akhir yang menampilkan sertifikat yang valid.  

**Example Definisi kasus uji API:**  
`EXECUTION_TIMEOUT`memiliki nilai default 5 menit. Kami merekomendasikan nilai batas waktu 2 menit. 

```
"tests":[
   {
      "name":"my_tls_unsecure_server_cert_test",
      "configuration": {
         // optional:
         "EXECUTION_TIMEOUT":"300",  //in seconds
      },
      "test":{
         "id":"TLS_Unsecure_Server_Cert",
         "version":"0.0.0"
      }
   }
]
```

**Example Output kasus uji:**  
+ **Lulus** — Perangkat yang diuji menutup koneksi.
+ **Gagal** - Perangkat yang diuji menyelesaikan jabat tangan TLS dengan. AWS IoT

**TLS Sertifikat Server Nama Subjek Salah/Nama Umum Subjek Salah (CN) /Nama Alternatif Subjek (SAN)**  <a name="TLS_Incorrect_Subject_Name"></a>
Memvalidasi bahwa perangkat yang sedang diuji menutup koneksi jika disajikan dengan sertifikat server untuk nama domain yang berbeda dari yang diminta.  

**Example Definisi kasus uji API:**  
`EXECUTION_TIMEOUT`memiliki nilai default 5 menit. Kami merekomendasikan nilai batas waktu 2 menit. 

```
"tests":[
   {
      "name":"my_tls_incorrect_subject_name_cert_test",
      "configuration": {
         // optional:
         "EXECUTION_TIMEOUT":"300",   // in seconds
      },
      "test":{
         "id":"TLS_Incorrect_Subject_Name_Server_Cert",
         "version":"0.0.0"
      }
   }
]
```

**Example Output kasus uji:**  
+ **Lulus** — Perangkat yang diuji menutup koneksi.
+ **Gagal** - Perangkat yang diuji menyelesaikan jabat tangan TLS dengan. AWS IoT

## Sertifikat Server Kedaluwarsa TLS
<a name="expired-server"></a>

**Sertifikat server kedaluwarsa**  <a name="TLS_Expired_Server_Cert"></a>
Memvalidasi bahwa perangkat yang sedang diuji menutup koneksi jika disajikan dengan sertifikat server yang kedaluwarsa.  

**Example Definisi kasus uji API:**  
`EXECUTION_TIMEOUT`memiliki nilai default 5 menit. Kami merekomendasikan nilai batas waktu 2 menit. 

```
"tests":[
   {
      "name":"my_tls_expired_cert_test",
      "configuration": {
         // optional:
         "EXECUTION_TIMEOUT":"300",  //in seconds
      },
      "test":{
         "id":"TLS_Expired_Server_Cert",
         "version":"0.0.0"
      }
   }
]
```

**Example Output kasus uji:**  
+ **Lulus** — Perangkat yang diuji menolak untuk menyelesaikan jabat tangan TLS. AWS IoT Perangkat mengirimkan pesan peringatan TLS sebelum menutup koneksi.
+ **Lulus dengan peringatan** — Perangkat yang diuji menolak untuk menyelesaikan jabat tangan TLS. AWS IoT Namun, itu tidak mengirim pesan peringatan TLS sebelum menutup koneksi.
+ **Gagal** - Perangkat yang diuji melengkapi jabat tangan TLS dengan. AWS IoT

# MQTT
<a name="device-advisor-tests-mqtt"></a>

## CONNECT, DISCONNECT, dan RECONNECT
<a name="connect"></a>

**“Perangkat mengirim CONNECT ke AWS IoT Core (Happy case)”**  <a name="MQTT_Connect"></a>
Memvalidasi bahwa perangkat yang sedang diuji mengirimkan permintaan CONNECT.  
*Definisi kasus uji API:*  
`EXECUTION_TIMEOUT`memiliki nilai default 5 menit. Kami merekomendasikan nilai batas waktu 2 menit. 

```
"tests":[
   {
      "name":"my_mqtt_connect_test",
      "configuration": {
         // optional:
         "EXECUTION_TIMEOUT":"300",   // in seconds
      },
      "test":{
         "id":"MQTT_Connect",
         "version":"0.0.0"
      }
   }
]
```

**“Perangkat dapat mengembalikan PUBACK ke topik arbitrer untuk QoS1"**  
Kasus uji ini akan memeriksa apakah perangkat (klien) dapat mengembalikan pesan PUBACK jika menerima pesan publikasi dari broker setelah berlangganan topik dengan QoS1.  
Konten payload dan ukuran payload dapat dikonfigurasi untuk kasus uji ini. Jika ukuran payload dikonfigurasi, Device Advisor akan menimpa nilai untuk konten payload, dan mengirim payload yang telah ditentukan ke perangkat dengan ukuran yang diinginkan. Ukuran muatan adalah nilai antara 0 hingga 128 dan tidak boleh melebihi 128 KB. AWS IoT Core menolak mempublikasikan dan menghubungkan permintaan yang lebih besar dari 128 KB, seperti yang terlihat di [broker AWS IoT Core pesan dan batas protokol dan halaman kuota](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#message-broker-limits).   
*Definisi kasus uji API:*  
`EXECUTION_TIMEOUT`memiliki nilai default 5 menit. Kami merekomendasikan nilai batas waktu 2 menit. `PAYLOAD_SIZE`dapat dikonfigurasi ke nilai antara 0 dan 128 kilobyte. Mendefinisikan ukuran payload akan menggantikan konten payload karena Device Advisor akan mengirimkan payload yang telah ditentukan sebelumnya dengan ukuran yang diberikan kembali ke perangkat.

```
"tests":[                            
{
        "name":"my_mqtt_client_puback_qos1",
        "configuration": {
            // optional:"TRIGGER_TOPIC": "myTopic",
            "EXECUTION_TIMEOUT":"300", // in seconds
            "PAYLOAD_FOR_PUBLISH_VALIDATION":"custom payload",
            "PAYLOAD_SIZE":"100" // in kilobytes
        },
        "test": {
            "id": "MQTT_Client_Puback_QoS1",
            "version": "0.0.0"
        }
    }
]
```

**“Perangkat menghubungkan percobaan ulang dengan jitter backoff - Tidak ada respons CONNACK”**  <a name="MQTT_ConnectJitterBackoff"></a>
Memvalidasi bahwa perangkat yang diuji menggunakan backoff jitter yang tepat saat terhubung kembali dengan broker setidaknya lima kali. Broker mencatat stempel waktu perangkat di bawah permintaan CONNECT pengujian, melakukan validasi paket, berhenti sejenak tanpa mengirim CONNACK ke perangkat yang sedang diuji, dan menunggu perangkat yang diuji untuk mengirim ulang permintaan. Upaya koneksi keenam diizinkan untuk melewati dan CONNACK diizinkan mengalir kembali ke perangkat yang diuji.  
Proses sebelumnya dilakukan lagi. Secara total, kasus uji ini mengharuskan perangkat untuk terhubung setidaknya 12 kali secara total. Stempel waktu yang dikumpulkan digunakan untuk memvalidasi bahwa jitter backoff digunakan oleh perangkat yang diuji. Jika perangkat yang diuji memiliki penundaan backoff eksponensial yang ketat, kasus uji ini akan lulus dengan peringatan.   
Kami merekomendasikan implementasi mekanisme [Exponential Backoff And Jitter](https://aws.amazon.com/blogs//architecture/exponential-backoff-and-jitter/) pada perangkat yang diuji untuk lulus kasus uji ini.  
*Definisi kasus uji API:*  
`EXECUTION_TIMEOUT`memiliki nilai default 5 menit. Kami merekomendasikan nilai batas waktu 4 menit. 

```
"tests":[
   {
      "name":"my_mqtt_jitter_backoff_retries_test",
      "configuration": {
         // optional:
         "EXECUTION_TIMEOUT":"300",    // in seconds
      },
      "test":{
         "id":"MQTT_Connect_Jitter_Backoff_Retries",
         "version":"0.0.0"
      }
   }
]
```

**“Perangkat menghubungkan percobaan ulang dengan backoff eksponensial - Tidak ada respons CONNACK”**  
Memvalidasi bahwa perangkat yang diuji menggunakan backoff eksponensial yang tepat saat terhubung kembali dengan broker setidaknya lima kali. Broker mencatat stempel waktu perangkat di bawah permintaan CONNECT pengujian, melakukan validasi paket, berhenti sejenak tanpa mengirim CONNACK ke perangkat klien, dan menunggu perangkat yang diuji untuk mengirim ulang permintaan. Stempel waktu yang dikumpulkan digunakan untuk memvalidasi bahwa backoff eksponensial digunakan oleh perangkat yang diuji.   
Kami merekomendasikan implementasi mekanisme [Exponential Backoff And Jitter](https://aws.amazon.com/blogs//architecture/exponential-backoff-and-jitter/) pada perangkat yang diuji untuk lulus kasus uji ini.  
*Definisi kasus uji API:*  
`EXECUTION_TIMEOUT`memiliki nilai default 5 menit. Kami merekomendasikan nilai batas waktu 4 menit. 

```
"tests":[
   {
      "name":"my_mqtt_exponential_backoff_retries_test",
      "configuration": {
         // optional:
         "EXECUTION_TIMEOUT":"600",  // in seconds
      },
      "test":{
         "id":"MQTT_Connect_Exponential_Backoff_Retries",
         "version":"0.0.0"
      }
   }
]
```

**“Perangkat terhubung kembali dengan jitter backoff - Setelah server terputus”**  
Memvalidasi jika perangkat yang diuji menggunakan jitter dan backoff yang diperlukan saat menyambung kembali setelah terputus dari server. Device Advisor memutus perangkat dari server setidaknya lima kali dan mengamati perilaku perangkat untuk penyambungan ulang MQTT. Device Advisor mencatat stempel waktu permintaan CONNECT untuk perangkat yang sedang diuji, melakukan validasi paket, berhenti sejenak tanpa mengirim CONNACK ke perangkat klien, dan menunggu perangkat yang diuji untuk mengirim ulang permintaan. Stempel waktu yang dikumpulkan digunakan untuk memvalidasi bahwa perangkat yang diuji menggunakan jitter dan backoff saat menyambung kembali. Jika perangkat yang diuji memiliki backoff eksponensial yang ketat atau tidak menerapkan mekanisme backoff jitter yang tepat, kasus uji ini akan lulus dengan peringatan. Jika perangkat yang diuji telah menerapkan backoff linier atau mekanisme backoff konstan, pengujian akan gagal.  
Untuk lulus kasus uji ini, kami sarankan untuk menerapkan mekanisme [Exponential Backoff And Jitter](https://aws.amazon.com/blogs//architecture/exponential-backoff-and-jitter/) pada perangkat yang diuji.  
*Definisi kasus uji API:*  
`EXECUTION_TIMEOUT`memiliki nilai default 5 menit. Kami merekomendasikan nilai batas waktu 4 menit.  
Jumlah upaya koneksi ulang untuk memvalidasi backoff dapat diubah dengan menentukan. `RECONNECTION_ATTEMPTS` Jumlahnya harus antara 5 dan 10. Nilai bawaannya adalah 5.

```
"tests":[
   {
      "name":"my_mqtt_reconnect_backoff_retries_on_server_disconnect",
      "configuration":{
         // optional:
         "EXECUTION_TIMEOUT":"300",  // in seconds
         "RECONNECTION_ATTEMPTS": 5
      },
      "test":{
         "id":"MQTT_Reconnect_Backoff_Retries_On_Server_Disconnect",
         "version":"0.0.0"
      }
   }
]
```

**“Perangkat terhubung kembali dengan jitter backoff - Pada koneksi yang tidak stabil”**  
Memvalidasi jika perangkat yang diuji menggunakan jitter dan backoff yang diperlukan saat menyambung kembali pada koneksi yang tidak stabil. Device Advisor memutus perangkat dari server setelah lima koneksi berhasil, dan mengamati perilaku perangkat untuk koneksi ulang MQTT. Device Advisor mencatat stempel waktu permintaan CONNECT untuk perangkat yang sedang diuji, melakukan validasi paket, mengirim kembali CONNACK, memutuskan sambungan, mencatat stempel waktu pemutusan, dan menunggu perangkat yang diuji untuk mengirim ulang permintaan. Stempel waktu yang dikumpulkan digunakan untuk memvalidasi bahwa perangkat yang diuji menggunakan jitter dan backoff saat menyambung kembali setelah koneksi berhasil tetapi tidak stabil. Jika perangkat yang diuji memiliki backoff eksponensial yang ketat atau tidak menerapkan mekanisme backoff jitter yang tepat, kasus uji ini akan lulus dengan peringatan. Jika perangkat yang diuji telah menerapkan backoff linier atau mekanisme backoff konstan, pengujian akan gagal.  
Untuk lulus kasus uji ini, kami sarankan untuk menerapkan mekanisme [Exponential Backoff And Jitter](https://aws.amazon.com/blogs//architecture/exponential-backoff-and-jitter/) pada perangkat yang diuji.  
*Definisi kasus uji API:*  
`EXECUTION_TIMEOUT`memiliki nilai default 5 menit. Kami merekomendasikan nilai batas waktu 4 menit.  
Jumlah upaya koneksi ulang untuk memvalidasi backoff dapat diubah dengan menentukan. `RECONNECTION_ATTEMPTS` Jumlahnya harus antara 5 dan 10. Nilai bawaannya adalah 5.

```
"tests":[
   {
      "name":"my_mqtt_reconnect_backoff_retries_on_unstable_connection",
      "configuration":{
         // optional:
         "EXECUTION_TIMEOUT":"300",  // in seconds
         "RECONNECTION_ATTEMPTS": 5
      },
      "test":{
         "id":"MQTT_Reconnect_Backoff_Retries_On_Unstable_Connection",
         "version":"0.0.0"
      }
   }
]
```

## Publikasikan
<a name="publish"></a>

**“QoS0 (Kasus Bahagia)”**  <a name="MQTT_Publish"></a>
Memvalidasi bahwa perangkat yang sedang diuji menerbitkan pesan dengan QoS0 atau QoS1. Anda juga dapat memvalidasi topik pesan dan payload dengan menentukan nilai topik dan payload dalam pengaturan pengujian.  
`EXECUTION_TIMEOUT`memiliki nilai default 5 menit. Kami merekomendasikan nilai batas waktu 2 menit.

```
"tests":[
   {
      "name":"my_mqtt_publish_test",
      "configuration":{
         // optional:
         "EXECUTION_TIMEOUT":"300",  // in seconds
         "TOPIC_FOR_PUBLISH_VALIDATION": "my_TOPIC_FOR_PUBLISH_VALIDATION",
         "PAYLOAD_FOR_PUBLISH_VALIDATION": "my_PAYLOAD_FOR_PUBLISH_VALIDATION",
      },
      "test":{
         "id":"MQTT_Publish",
         "version":"0.0.0"
      }
   }
]
```

**“QoS1 terbitkan coba lagi - Tanpa PUBACK”**  
Memvalidasi bahwa perangkat yang diuji menerbitkan kembali pesan yang dikirim dengan QoS1, jika broker tidak mengirim PUBACK. Anda juga dapat memvalidasi topik pesan dengan menentukan topik ini di pengaturan pengujian. Perangkat klien tidak boleh memutuskan sambungan sebelum memublikasikan ulang pesan. Tes ini juga memvalidasi bahwa pesan yang diterbitkan ulang memiliki pengenal paket yang sama dengan aslinya. Selama eksekusi pengujian, jika perangkat kehilangan koneksi dan menyambung kembali, kasus uji akan diatur ulang tanpa gagal dan perangkat harus melakukan langkah-langkah kasus uji lagi.  
*Definisi kasus uji API:*  
`EXECUTION_TIMEOUT`memiliki nilai default 5 menit. Disarankan setidaknya selama 4 menit.

```
"tests":[
   {
      "name":"my_mqtt_publish_retry_test",
      "configuration":{
         // optional:
         "EXECUTION_TIMEOUT":"300",  // in seconds
         "TOPIC_FOR_PUBLISH_VALIDATION": "my_TOPIC_FOR_PUBLISH_VALIDATION",
         "PAYLOAD_FOR_PUBLISH_VALIDATION": "my_PAYLOAD_FOR_PUBLISH_VALIDATION",
      },
      "test":{
         "id":"MQTT_Publish_Retry_No_Puback",
         "version":"0.0.0"
      }
   }
]
```

**“Publikasikan pesan yang disimpan”**  
Memvalidasi bahwa perangkat yang sedang diuji menerbitkan pesan dengan `retainFlag` disetel ke true. Anda dapat memvalidasi topik dan payload pesan dengan menyetel nilai topik dan payload dalam pengaturan pengujian. Jika yang `retainFlag` dikirim dalam paket PUBLISH tidak disetel ke true, kasus uji akan gagal.  
*Definisi kasus uji API:*  
`EXECUTION_TIMEOUT`memiliki nilai default 5 menit. Kami merekomendasikan nilai batas waktu 2 menit. Untuk menjalankan kasus uji ini, tambahkan `iot:RetainPublish` tindakan dalam [peran perangkat](https://docs.aws.amazon.com/iot/latest/developerguide/device-advisor-setting-up.html#da-iam-role) Anda.

```
"tests":[
   {
      "name":"my_mqtt_publish_retained_messages_test",
      "configuration":{
         // optional:
         "EXECUTION_TIMEOUT":"300",  // in seconds
         "TOPIC_FOR_PUBLISH_RETAINED_VALIDATION": "my_TOPIC_FOR_PUBLISH_RETAINED_VALIDATION",
         "PAYLOAD_FOR_PUBLISH_RETAINED_VALIDATION": "my_PAYLOAD_FOR_PUBLISH_RETAINED_VALIDATION",
      },
      "test":{
         "id":"MQTT_Publish_Retained_Messages",
         "version":"0.0.0"
      }
   }
]
```

**“Publikasikan dengan Properti Pengguna”**  
Memvalidasi bahwa perangkat yang sedang diuji menerbitkan pesan dengan properti pengguna yang benar. Anda dapat memvalidasi properti pengguna dengan menyetel pasangan nama-nilai dalam pengaturan pengujian. Jika properti pengguna tidak disediakan atau tidak cocok, kasus uji gagal.  
*Definisi kasus uji API:*  
Ini adalah MQTT5 satu-satunya kasus uji.  
`EXECUTION_TIMEOUT`memiliki nilai default 5 menit. Kami merekomendasikan nilai batas waktu 2 menit. 

```
"tests":[
   {
      "name":"my_mqtt_user_property_test",
      "test":{
        "USER_PROPERTIES": [
            {"name": "name1", "value":"value1"},
            {"name": "name2", "value":"value2"}
        ],
        "EXECUTION_TIMEOUT":"300",  // in seconds
      },
      "test":{
         "id":"MQTT_Publish_User_Property",
         "version":"0.0.0"
      }
   }
]
```

## Langganan
<a name="subscribe"></a>

**“Bisa Berlangganan (Happy Case)”**  <a name="MQTT_Subscribe"></a>
Memvalidasi bahwa perangkat yang sedang diuji berlangganan topik MQTT. Anda juga dapat memvalidasi topik yang dilanggani perangkat yang sedang diuji dengan menentukan topik ini di setelan pengujian.   
*Definisi kasus uji API:*  
`EXECUTION_TIMEOUT`memiliki nilai default 5 menit. Kami merekomendasikan nilai batas waktu 2 menit. 

```
"tests":[
   {
      "name":"my_mqtt_subscribe_test",
      "configuration":{
         // optional:
         "EXECUTION_TIMEOUT":"300",  // in seconds
         "TOPIC_LIST_FOR_SUBSCRIPTION_VALIDATION":["my_TOPIC_FOR_PUBLISH_VALIDATION_a","my_TOPIC_FOR_PUBLISH_VALIDATION_b"]
      },
      "test":{
         "id":"MQTT_Subscribe",
         "version":"0.0.0"
      }
   }
]
```

**“Berlangganan Coba Lagi - Tanpa SUBACK”**  
Memvalidasi bahwa perangkat yang sedang diuji mencoba ulang langganan yang gagal ke topik MQTT. Server kemudian menunggu dan tidak mengirim SUBACK. Jika perangkat klien tidak mencoba lagi langganan, pengujian gagal. Perangkat klien harus mencoba lagi langganan yang gagal dengan Id paket yang sama. Anda juga dapat memvalidasi topik yang dilanggani perangkat yang sedang diuji dengan menentukan topik ini di setelan pengujian. Selama eksekusi pengujian, jika perangkat kehilangan koneksi dan menyambung kembali, kasus uji akan diatur ulang tanpa gagal dan perangkat harus melakukan langkah-langkah kasus uji lagi.  
*Definisi kasus uji API:*  
`EXECUTION_TIMEOUT`memiliki nilai default 5 menit. Kami merekomendasikan nilai batas waktu 4 menit. 

```
"tests":[
   {
      "name":"my_mqtt_subscribe_retry_test",
      "configuration":{
         "EXECUTION_TIMEOUT":"300",  // in seconds
         // optional:
         "TOPIC_LIST_FOR_SUBSCRIPTION_VALIDATION":["myTOPIC_FOR_PUBLISH_VALIDATION_a","my_TOPIC_FOR_PUBLISH_VALIDATION_b"]
      },
      "test":{
         "id":"MQTT_Subscribe_Retry_No_Suback",
         "version":"0.0.0"
      }
   }
]
```

## Jaga-Hidup
<a name="keep-alive"></a>

**“Mqtt Tanpa Ack” PingResp**  
Kasus uji ini memvalidasi jika perangkat yang diuji terputus saat tidak menerima respons ping. Sebagai bagian dari kasus uji ini, Device Advisor memblokir tanggapan yang dikirim dari AWS IoT Core permintaan publikasi, berlangganan, dan ping. Ini juga memvalidasi jika perangkat yang diuji memutuskan koneksi MQTT.  
*Definisi kasus uji API:*  
`EXECUTION_TIMEOUT`memiliki nilai default 5 menit. Kami merekomendasikan batas waktu yang lebih besar dari 1,5 kali `keepAliveTime` nilainya.  
 Maksimum `keepAliveTime` harus tidak lebih dari 230 detik untuk tes ini. 

```
"tests":[
    {
       "name":"Mqtt No Ack PingResp",
       "configuration": 
          //optional:
          "EXECUTION_TIMEOUT":"306",   // in seconds
       },
       "test":{
          "id":"MQTT_No_Ack_PingResp",
          "version":"0.0.0"
       }
    }
]
```

## Sesi Persisten
<a name="persistent-session"></a>

**“Sesi Persisten (Happy Case)”**  
Kasus uji ini memvalidasi perilaku perangkat saat terputus dari sesi persisten. Kasus uji memeriksa apakah perangkat dapat menyambung kembali, melanjutkan langganan ke topik pemicunya tanpa berlangganan ulang secara eksplisit, menerima pesan yang disimpan dalam topik, dan bekerja seperti yang diharapkan selama sesi persisten. Ketika kasus uji ini berlalu, ini menunjukkan bahwa perangkat klien dapat mempertahankan sesi persisten dengan AWS IoT Core broker dengan cara yang diharapkan. Untuk informasi selengkapnya tentang Sesi AWS IoT Persisten, lihat [Menggunakan sesi persisten MQTT](https://docs.aws.amazon.com/iot/latest/developerguide/mqtt.html#mqtt-persistent-sessions).   
Dalam kasus pengujian ini, perangkat klien diharapkan untuk TERHUBUNG dengan flag sesi bersih yang disetel ke false, lalu berlangganan topik pemicu. AWS IoT Core Setelah berlangganan berhasil, perangkat akan terputus oleh AWS IoT Core Device Advisor. Saat perangkat dalam keadaan terputus, muatan pesan QoS 1 akan disimpan dalam topik itu. Device Advisor kemudian akan mengizinkan perangkat klien untuk terhubung kembali dengan titik akhir pengujian. Pada titik ini, karena ada sesi persisten, perangkat klien diharapkan untuk melanjutkan langganan topiknya tanpa mengirim paket SUBSCRIBE tambahan dan menerima pesan QoS 1 dari broker. Setelah menyambung kembali, jika perangkat klien berlangganan kembali ke topik pemicunya lagi dengan mengirimkan paket SUBSCRIBE tambahan and/or jika klien gagal menerima pesan yang disimpan dari topik pemicu, kasus uji akan gagal.  
*Definisi kasus uji API:*  
`EXECUTION_TIMEOUT`memiliki nilai default 5 menit. Kami merekomendasikan nilai batas waktu minimal 4 menit. Pada koneksi pertama, perangkat klien perlu secara eksplisit berlangganan `TRIGGER_TOPIC` yang tidak berlangganan sebelumnya. Untuk lulus test case, perangkat klien harus berhasil berlangganan `TRIGGER_TOPIC` dengan QoS 1. Setelah terhubung kembali, perangkat klien diharapkan untuk memahami bahwa ada sesi persisten aktif; jadi harus menerima pesan tersimpan yang dikirim oleh topik pemicu dan mengembalikan PUBACK untuk pesan tertentu. 

```
"tests":[
   {
      "name":"my_mqtt_persistent_session_happy_case",
      "configuration":{
         //required:
         "TRIGGER_TOPIC": "myTrigger/topic",
         // optional:
         // if Payload not provided, a string will be stored in the trigger topic to be sent back to the client device
         "PAYLOAD": "The message which should be received from AWS IoT Broker after re-connecting to a persistent session from the specified trigger topic.",            
         "EXECUTION_TIMEOUT":"300" // in seconds
      },
      "test":{
         "id":"MQTT_Persistent_Session_Happy_Case",
         "version":"0.0.0"
      }
   }
]
```

**“Sesi Persisten - Kedaluwarsa Sesi”**  
Kasus uji ini membantu memvalidasi perilaku perangkat saat perangkat yang terputus tersambung kembali ke sesi persisten yang kedaluwarsa. Setelah sesi berakhir, kami mengharapkan perangkat untuk berlangganan kembali ke topik yang sebelumnya berlangganan dengan secara eksplisit mengirimkan paket SUBSCRIBE baru.  
Selama koneksi pertama, kami mengharapkan perangkat uji untuk TERHUBUNG dengan broker AWS IoT, karena `CleanSession` benderanya disetel ke false untuk memulai sesi persisten. Perangkat kemudian harus berlangganan topik pemicu. Kemudian perangkat diputuskan oleh AWS IoT Core Device Advisor, setelah berlangganan berhasil dan memulai sesi persisten. Setelah pemutusan sambungan, AWS IoT Core Device Advisor memungkinkan perangkat uji untuk terhubung kembali dengan titik akhir pengujian. Pada titik ini, ketika perangkat uji mengirim paket CONNECT lain, AWS IoT Core Device Advisor mengirimkan kembali paket CONNACK yang menunjukkan bahwa sesi persisten telah kedaluwarsa. Perangkat uji perlu menafsirkan paket ini dengan benar, dan diharapkan untuk berlangganan kembali ke topik pemicu yang sama lagi saat sesi persisten dihentikan. Jika perangkat uji tidak berlangganan kembali ke pemicu topiknya lagi, kasus uji gagal. Agar tes lulus, perangkat perlu memahami bahwa sesi persisten telah berakhir, dan mengirim kembali paket SUBSCRIBE baru untuk topik pemicu yang sama di koneksi kedua.  
Jika kasus uji ini lolos untuk perangkat uji, ini menunjukkan bahwa perangkat dapat menangani koneksi ulang saat berakhirnya sesi persisten dengan cara yang diharapkan.  
*Definisi kasus uji API:*  
`EXECUTION_TIMEOUT`memiliki nilai default 5 menit. Kami merekomendasikan nilai batas waktu minimal 4 menit. Perangkat uji perlu secara eksplisit berlangganan`TRIGGER_TOPIC`, yang sebelumnya tidak berlangganan. Untuk lulus test case, perangkat uji harus mengirim paket CONNECT dengan `CleanSession` flag disetel ke false, dan berhasil berlangganan topik pemicu dengan QoS 1. Setelah koneksi berhasil, AWS IoT Core Device Advisor memutus perangkat. Setelah pemutusan, AWS IoT Core Device Advisor memungkinkan perangkat untuk terhubung kembali, dan perangkat diharapkan untuk berlangganan ulang yang sama `TRIGGER_TOPIC` karena AWS IoT Core Device Advisor akan menghentikan sesi persisten.

```
"tests":[
   {
      "name":"my_expired_persistent_session_test",
      "configuration":{
         //required:
         "TRIGGER_TOPIC": "myTrigger/topic",
         // optional:       
         "EXECUTION_TIMEOUT":"300" // in seconds
      },
      "test":{
         "id":"MQTT_Expired_Persistent_Session",
         "version":"0.0.0"
      }
   }
]
```

# Bayangan
<a name="device-advisor-tests-shadow"></a>

Gunakan pengujian ini untuk memverifikasi perangkat Anda yang sedang diuji, gunakan layanan AWS IoT Device Shadow dengan benar. Untuk informasi selengkapnya, lihat [AWS IoT Layanan Device Shadow](iot-device-shadows.md). Jika kasus pengujian ini dikonfigurasi dalam rangkaian pengujian Anda, maka penyediaan sesuatu diperlukan saat memulai suite run.

**MQTT over** tidak WebSocket didukung saat ini.

## Publikasikan
<a name="publish"></a>

***“Perangkat menerbitkan status setelah terhubung (Happy case)”***  
Memvalidasi jika perangkat dapat mempublikasikan statusnya setelah terhubung AWS IoT Core  
*Definisi kasus uji API:*  
`EXECUTION_TIMEOUT`memiliki nilai default 5 menit. Kami merekomendasikan nilai batas waktu 2 menit. 

```
"tests":[
   {
      "name":"my_shadow_publish_reported_state",
      "configuration": {
         // optional:
         "EXECUTION_TIMEOUT":"300", // in seconds
         "SHADOW_NAME": "SHADOW_NAME",
         "REPORTED_STATE": {
            "STATE_ATTRIBUTE": "STATE_VALUE"
         }
      },
      "test":{
         "id":"Shadow_Publish_Reported_State",
         "version":"0.0.0"
      }
   }
]
```
`REPORTED_STATE`Dapat disediakan untuk validasi tambahan pada status bayangan persis perangkat Anda, setelah terhubung. Secara default, kasus uji ini memvalidasi status penerbitan perangkat Anda.  
Jika tidak `SHADOW_NAME` disediakan, kasus uji akan mencari pesan yang dipublikasikan ke awalan topik tipe bayangan Unnamed (klasik) secara default. Berikan nama bayangan jika perangkat Anda menggunakan tipe bayangan bernama. Lihat [Menggunakan bayangan di perangkat](https://docs.aws.amazon.com/iot/latest/developerguide/device-shadow-comms-device.html) untuk informasi selengkapnya.

## Perbarui
<a name="update"></a>

***“Pembaruan perangkat melaporkan status ke status yang diinginkan (Happy case)”***  
Memvalidasi jika perangkat Anda membaca semua pesan pembaruan yang diterima dan menyinkronkan status perangkat agar sesuai dengan properti status yang diinginkan. Perangkat Anda harus mempublikasikan status terbaru yang dilaporkan setelah disinkronkan. Jika perangkat Anda sudah memiliki bayangan yang ada sebelum menjalankan pengujian, pastikan status yang diinginkan dikonfigurasi untuk kasus pengujian dan status laporan yang ada belum cocok. Anda dapat mengidentifikasi pesan pembaruan Shadow yang dikirim oleh Device Advisor dengan melihat **ClientToken**bidang di dokumen Shadow sebagaimana `DeviceAdvisorShadowTestCaseSetup` adanya.   
*Definisi kasus uji API:*  
`EXECUTION_TIMEOUT`memiliki nilai default 5 menit. Kami merekomendasikan nilai batas waktu 2 menit. 

```
"tests":[
   {
      "name":"my_shadow_update_reported_state",
      "configuration": {
         "DESIRED_STATE": {
            "STATE_ATTRIBUTE": "STATE_VALUE"
         },
         // optional:
         "EXECUTION_TIMEOUT":"300", // in seconds
         "SHADOW_NAME": "SHADOW_NAME"
      },
      "test":{
         "id":"Shadow_Update_Reported_State",
         "version":"0.0.0"
      }
   }
]
```
`DESIRED_STATE`Harus memiliki setidaknya satu atribut dan nilai terkait.  
Jika tidak `SHADOW_NAME` disediakan, maka kasus uji mencari pesan yang dipublikasikan ke awalan topik dari tipe bayangan Unnamed (klasik) secara default. Berikan nama bayangan jika perangkat Anda menggunakan tipe bayangan bernama. Lihat [Menggunakan bayangan di perangkat](https://docs.aws.amazon.com/iot/latest/developerguide/device-shadow-comms-device.html) untuk informasi selengkapnya.

# Eksekusi Job
<a name="device-advisor-tests-job-execution"></a>

**“Perangkat dapat menyelesaikan eksekusi pekerjaan”**  
 Kasus uji ini membantu Anda memvalidasi jika perangkat Anda dapat menerima pembaruan menggunakan AWS IoT Pekerjaan, dan mempublikasikan status pembaruan yang berhasil. Untuk informasi selengkapnya tentang AWS IoT Pekerjaan, lihat [Pekerjaan](https://docs.aws.amazon.com//iot/latest/developerguide/iot-jobs.html).   
 Agar berhasil menjalankan kasus uji ini, ada dua AWS topik cadangan yang Anda perlukan untuk memberikan [Peran Perangkat](https://docs.aws.amazon.com/iot/latest/developerguide/device-advisor-setting-up.html#da-iam-role) Anda. Untuk berlangganan pesan terkait aktivitas pekerjaan, gunakan topik **pemberitahuan dan beri** **tahu berikutnya**. Peran perangkat Anda harus memberikan tindakan PUBLISH untuk topik berikut:   
+ ****\$1aws/things/thingName /jobs/joBid/dapatkan****
+ ****\$1 aws/things/ ThingName /jobs/joBid/update****
Disarankan untuk memberikan tindakan SUBSCRIBE dan RECEIVE untuk topik-topik berikut:  
+ **\$1 aws/hal/ThingName/**jobs/get/accepted
+ ****\$1aws/things/thingName /jobs/ joBid/dapatkan/ditolak****
+ ****\$1aws/things/ ThingName /jobs/ joBid/update/diterima****
+ ****\$1aws/things/ ThingName /jobs/ joBid/update/ditolak****
Disarankan untuk memberikan tindakan BERLANGGANAN untuk topik berikut:  
+ **\$1aws/things/ ThingName /jobs/notify-next**
Untuk informasi selengkapnya tentang topik yang dicadangkan ini, lihat topik yang dicadangkan untuk [AWS IoT Pekerjaan](https://docs.aws.amazon.com/iot/latest/developerguide/reserved-topics.html#reserved-topics-job).  
**MQTT over** tidak WebSocket didukung saat ini.  
*Definisi kasus uji API:*  
`EXECUTION_TIMEOUT`memiliki nilai default 5 menit. Kami merekomendasikan nilai batas waktu 3 menit. Bergantung pada dokumen AWS IoT Job atau sumber yang disediakan, sesuaikan nilai batas waktu (misalnya, jika pekerjaan akan memakan waktu lama untuk dijalankan, tentukan nilai batas waktu yang lebih lama untuk kasus uji). Untuk menjalankan pengujian, diperlukan dokumen AWS IoT Job yang valid atau ID pekerjaan yang sudah ada. Dokumen AWS IoT Job dapat disediakan sebagai dokumen JSON atau tautan S3. Jika dokumen pekerjaan disediakan, memberikan ID pekerjaan adalah opsional. Jika ID lowongan diberikan, Device Advisor akan menggunakan ID tersebut saat membuat AWS IoT Job atas nama Anda. Jika dokumen pekerjaan tidak disediakan, Anda dapat memberikan ID yang ada di wilayah yang sama dengan saat Anda menjalankan kasus uji. Dalam hal ini, Device Advisor akan menggunakan AWS IoT Job tersebut saat menjalankan test case.

```
"tests": [
   {
      "name":"my_job_execution",
      "configuration": {
         // optional:
         // Test case will create a job task by using either JOB_DOCUMENT or JOB_DOCUMENT_SOURCE.
         // If you manage the job task on your own, leave it empty and provide the JOB_JOBID (self-managed job task).
         // JOB_DOCUMENT is a JSON formatted string
         "JOB_DOCUMENT": "{
            \"operation\":\"reboot\",
            \"files\" : {
               \"fileName\" : \"install.py\",
               \"url\" : \"${aws:iot:s3-presigned-url:https://s3.amazonaws.com/bucket-name/key}\"
            }
         }",
         // JOB_DOCUMENT_SOURCE is an S3 link to the job document. It will be used only if JOB_DOCUMENT is not provided.
         "JOB_DOCUMENT_SOURCE": "https://s3.amazonaws.com/bucket-name/key",
         // JOB_JOBID is mandatory, only if neither document nor document source is provided. (Test case needs to know the self-managed job task id).
         "JOB_JOBID": "String",
         // JOB_PRESIGN_ROLE_ARN is used for the presign Url, which will replace the placeholder in the JOB_DOCUMENT field
         "JOB_PRESIGN_ROLE_ARN": "String",
         // Presigned Url expiration time. It must be between 60 and 3600 seconds, with the default value being 3600.
         "JOB_PRESIGN_EXPIRES_IN_SEC": "Long"   
         "EXECUTION_TIMEOUT": "300", // in seconds         
      },
      "test": {
         "id": "Job_Execution",
         "version": "0.0.0"
      }
   }
]
```
Untuk informasi selengkapnya tentang membuat dan menggunakan dokumen pekerjaan, lihat [dokumen pekerjaan](https://docs.aws.amazon.com//iot/latest/developerguide/iot-jobs.html). 

# Izin dan kebijakan
<a name="device-advisor-tests-permissions-policies"></a>

Anda dapat menggunakan pengujian berikut untuk menentukan apakah kebijakan yang dilampirkan pada sertifikat perangkat Anda mengikuti praktik terbaik standar.

**MQTT over** tidak WebSocket didukung saat ini.

**“Kebijakan terlampir sertifikat perangkat tidak mengandung wildcard”**  
 Memvalidasi jika kebijakan izin yang terkait dengan perangkat mengikuti praktik terbaik dan tidak memberi perangkat izin lebih dari yang diperlukan.  
*Definisi kasus uji API:*  
`EXECUTION_TIMEOUT`memiliki nilai default 1 menit. Sebaiknya atur batas waktu minimal 30 detik.

```
"tests":[
   {
        "name":"my_security_device_policies",
        "configuration": {
            // optional:
            "EXECUTION_TIMEOUT":"60"    // in seconds
        },
        "test": {
            "id": "Security_Device_Policies",
            "version": "0.0.0"
        }
    }
]
```

# Tes durasi panjang
<a name="device-advisor-tests-long-duration"></a>

Tes durasi panjang adalah rangkaian pengujian baru yang memantau perilaku perangkat saat beroperasi dalam jangka waktu yang lebih lama. Dibandingkan dengan menjalankan pengujian individual yang berfokus pada perilaku tertentu perangkat, tes durasi panjang memeriksa perilaku perangkat dalam berbagai skenario dunia nyata selama masa pakai perangkat. Device Advisor mengatur pengujian dalam urutan yang paling efisien. Pengujian menghasilkan hasil dan log, termasuk log ringkasan dengan metrik berguna tentang kinerja perangkat saat diuji. 

## Kasus uji durasi panjang MQTT
<a name="long-duration-test-case"></a>

Dalam kasus uji durasi panjang MQTT, perilaku perangkat awalnya diamati dalam skenario kasus bahagia seperti MQTT Connect, Subscribe, Publish, dan Reconnect. Kemudian, perangkat diamati dalam beberapa skenario kegagalan kompleks seperti MQTT Reconnect Backoff, Long Server Disconnect, dan Intermittent Connectivity.

## Alur eksekusi kasus uji durasi panjang MQTT
<a name="long-duration-test-case-execution-flow"></a>

Ada tiga fase dalam pelaksanaan kasus uji durasi panjang MQTT:

![\[“Eksekusi uji Durasi Panjang MQTT” yang menunjukkan eksekusi pengujian Dasar, Eksekusi tes lanjutan, dan waktu eksekusi tambahan.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/mqtt-execution-flow.png)


### Eksekusi tes dasar
<a name="basic-tests-execution"></a>

Pada fase ini, test case menjalankan tes sederhana secara paralel. Pengujian memvalidasi jika perangkat memiliki operasi yang dipilih dalam konfigurasi.

Serangkaian tes dasar dapat mencakup yang berikut, berdasarkan operasi yang dipilih:

#### MENGHUBUNG
<a name="basic-tests-execution-connect"></a>

Skenario ini memvalidasi jika perangkat mampu membuat koneksi yang sukses dengan broker.

![\[Alur koneksi dasar yang mencakup perangkat yang mengirim pesan CONNECT dan Broker merespons dengan pesan CONNACK dengan kode pengembalian yang berhasil.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/basic-connect.png)


#### MENERBITKAN
<a name="basic-tests-execution-publish"></a>

Skenario ini memvalidasi jika perangkat berhasil menerbitkan terhadap broker.

##### QoS 0
<a name="publish-qos0"></a>

Kasus uji ini memvalidasi jika perangkat berhasil mengirim `PUBLISH` pesan ke broker selama publikasi dengan QoS 0. Tes tidak menunggu `PUBACK` pesan diterima oleh perangkat.

![\[Aliran PUBLISH QoS 0 yang mencakup perangkat yang mengirim pesan PUBLISH dengan level QoS 0.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/Qos0.png)


##### QoS 1
<a name="publish-qos1"></a>

Dalam kasus uji ini, perangkat diharapkan mengirim dua `PUBLISH` pesan ke broker dengan QoS 1. Setelah `PUBLISH` pesan pertama, broker menunggu hingga 15 detik sebelum merespons. Perangkat harus mencoba lagi `PUBLISH` pesan asli dengan pengenal paket yang sama dalam jendela 15 detik. Jika ya, broker merespons dengan `PUBACK` pesan dan tes memvalidasi. Jika perangkat tidak mencoba lagi`PUBLISH`, yang asli `PUBACK` dikirim ke perangkat dan pengujian ditandai sebagai **Lulus dengan peringatan**, bersama dengan pesan sistem. Selama eksekusi pengujian, jika perangkat kehilangan koneksi dan menyambung kembali, skenario pengujian akan diatur ulang tanpa gagal dan perangkat harus melakukan langkah-langkah skenario pengujian lagi. 

![\[Aliran PUBLISH QoS 1 yang mencakup perangkat yang mengirim pesan PUBLISH dengan level QoS 1 dan beberapa interaksi dengan broker.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/Qos1.png)


#### BERLANGGANAN
<a name="basic-tests-execution-subscribe"></a>

Skenario ini memvalidasi jika perangkat berhasil berlangganan broker.

##### QoS 0
<a name="subscribe-qos0"></a>

Kasus uji ini memvalidasi jika perangkat berhasil mengirim `SUBSCRIBE` pesan ke broker selama berlangganan dengan QoS 0. Tes tidak menunggu perangkat menerima pesan SUBACK.

![\[Aliran SUBSCRIBE QoS 0 yang mencakup perangkat yang mengirim pesan SUBSCRIBE dengan level QoS 0 dan broker merespons dengan pesan SUBACK dan kode Sukses Maksimum QoS 0.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/subscribe-Qos0.png)


##### QoS 1
<a name="subscribe-qos1"></a>

Dalam kasus uji ini, perangkat diharapkan mengirim dua `SUBSCRIBE` pesan ke broker dengan QoS 1. Setelah `SUBSCRIBE` pesan pertama, broker menunggu hingga 15 detik sebelum merespons. Perangkat harus mencoba lagi `SUBSCRIBE` pesan asli dengan pengenal paket yang sama dalam jendela 15 detik. Jika ya, broker merespons dengan `SUBACK` pesan dan tes memvalidasi. Jika perangkat tidak mencoba lagi`SUBSCRIBE`, yang asli `SUBACK` dikirim ke perangkat dan pengujian ditandai sebagai **Lulus dengan peringatan**, bersama dengan pesan sistem. Selama eksekusi pengujian, jika perangkat kehilangan koneksi dan menyambung kembali, skenario pengujian akan diatur ulang tanpa gagal dan perangkat harus melakukan langkah-langkah skenario pengujian lagi. 

![\[Alur SUBSCRIBE QoS 1 yang mencakup perangkat yang mengirim pesan SUBSCRIBE dengan level QoS 1 dan beberapa interaksi dengan broker.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/subscribe-Qos1.png)


#### SAMBUNGKAN KEMBALI
<a name="basic-tests-execution-reconnect"></a>

Skenario ini memvalidasi jika perangkat berhasil terhubung kembali dengan broker setelah perangkat terputus dari koneksi yang berhasil. Device Advisor tidak akan memutuskan sambungan perangkat jika terhubung lebih dari satu kali sebelumnya selama rangkaian pengujian. Sebaliknya, itu akan menandai tes sebagai **Lulus**.

![\[Aliran RECONNECT antara DUT dan broker.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/reconnect.png)


### Eksekusi tes lanjutan
<a name="advanced-tests-execution"></a>

Pada fase ini, kasus uji menjalankan pengujian yang lebih kompleks secara serial untuk memvalidasi jika perangkat mengikuti praktik terbaik. Tes lanjutan ini tersedia untuk dipilih dan dapat dipilih jika tidak diperlukan. Setiap tes lanjutan memiliki nilai batas waktu sendiri berdasarkan apa yang dituntut skenario. 

#### KEMBALIKAN PUBACK PADA LANGGANAN QoS 1
<a name="advanced-tests-execution-return-puback"></a>

**catatan**  
Pilih skenario ini hanya jika perangkat Anda mampu melakukan langganan QoS 1.

Skenario ini memvalidasi jika, setelah perangkat berlangganan topik dan menerima `PUBLISH` pesan dari broker, ia mengembalikan pesan`PUBACK`.

![\[RETURN PUBACK ON QoS 1 SUBSCTIPTION mengalir antara DUT dan broker.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/return-puback.png)


#### MENERIMA MUATAN BESAR
<a name="advanced-tests-execution-receive-large-payload"></a>

**catatan**  
Pilih skenario ini hanya jika perangkat Anda mampu melakukan langganan QoS 1.

Skenario ini memvalidasi jika perangkat merespons dengan `PUBACK` pesan setelah menerima `PUBLISH` pesan dari broker untuk topik QoS 1 dengan muatan besar. Format payload yang diharapkan dapat dikonfigurasi menggunakan `LONG_PAYLOAD_FORMAT` opsi.

![\[Aliran RECEIVE PAYLOAD BESAR antara DUT dan broker.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/large-payload.png)


#### SESI PERSISTEN
<a name="advanced-tests-execution-persistent-session"></a>

**catatan**  
Pilih skenario ini hanya jika perangkat Anda mampu melakukan langganan QoS 1 dan dapat mempertahankan sesi persisten.

Skenario ini memvalidasi perilaku perangkat dalam mempertahankan sesi persisten. Tes memvalidasi ketika kondisi berikut terpenuhi:
+ Perangkat terhubung ke broker dengan langganan QoS 1 aktif dan sesi persisten diaktifkan.
+ Perangkat berhasil terputus dari broker selama sesi berlangsung.
+ Perangkat terhubung kembali ke broker dan melanjutkan langganan ke topik pemicunya tanpa secara eksplisit berlangganan kembali topik tersebut.
+ Perangkat berhasil menerima pesan yang disimpan oleh broker untuk topik berlangganan dan berjalan seperti yang diharapkan.

 Untuk informasi selengkapnya tentang Sesi AWS IoT Persisten, lihat [Menggunakan sesi persisten MQTT](https://docs.aws.amazon.com//iot/latest/developerguide/mqtt.html#mqtt-persistent-sessions).

![\[Aliran SESI PERSISTEN antara DUT dan broker.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/persistent-session.png)


#### TETAP HIDUP
<a name="advanced-tests-execution-keep-alive"></a>

Skenario ini memvalidasi jika perangkat berhasil terputus setelah tidak menerima respons ping dari broker. Koneksi harus memiliki timer keep-alive yang valid yang dikonfigurasi. Sebagai bagian dari tes ini, broker memblokir semua tanggapan yang dikirim untuk`PUBLISH`,`SUBSCRIBE`, dan `PINGREQ` pesan. Ini juga memvalidasi jika perangkat yang diuji memutuskan koneksi MQTT.

![\[Aliran KEEP ALIVE antara DUT dan broker.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/keep-alive.png)


#### KONEKTIVITAS INTERMITEN
<a name="advanced-tests-execution-intermittent-connectivity"></a>

Skenario ini memvalidasi jika perangkat dapat terhubung kembali ke broker setelah broker memutus perangkat pada interval acak untuk jangka waktu acak.

![\[Aliran KONEKTIVITAS INTERMITEN antara DUT dan broker.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/intermittent.png)


#### SAMBUNGKAN KEMBALI BACKOFF
<a name="advanced-tests-execution-reconnect-backoff"></a>

Skenario ini memvalidasi jika perangkat memiliki mekanisme backoff yang diterapkan ketika broker terputus darinya beberapa kali. Device Advisor melaporkan tipe backoff sebagai eksponensial, jitter, linier, atau konstan. Jumlah upaya backoff dapat dikonfigurasi menggunakan opsi. `BACKOFF_CONNECTION_ATTEMPTS` Nilai bawaannya adalah 5. Nilai dapat dikonfigurasi antara 5 dan 10.

Untuk lulus tes ini, kami sarankan untuk menerapkan mekanisme [Exponential Backoff And Jitter](https://aws.amazon.com/blogs/architecture/exponential-backoff-and-jitter/) pada perangkat yang diuji.

![\[Aliran RECONNECT BACKOFF antara DUT dan broker.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/reconnect-backoff.png)


#### PEMUTUSAN SERVER PANJANG
<a name="advanced-tests-execution-longserver-disconnect"></a>

Skenario ini memvalidasi jika perangkat berhasil terhubung kembali setelah broker memutus perangkat untuk jangka waktu yang lama (hingga 120 menit). Waktu untuk pemutusan server dapat dikonfigurasi menggunakan `LONG_SERVER_DISCONNECT_TIME` opsi. Nilai defaultnya adalah 120 menit. Nilai ini dapat dikonfigurasi dari 30 hingga 120 menit.

![\[Aliran LONG SERVER DISCONNECT antara DUT dan broker.\]](http://docs.aws.amazon.com/id_id/iot/latest/developerguide/images/longserver-disconnect.png)


### Waktu eksekusi tambahan
<a name="additional-execution-time"></a>

Waktu eksekusi tambahan adalah waktu pengujian menunggu setelah menyelesaikan semua tes di atas dan sebelum mengakhiri kasus uji. Pelanggan menggunakan periode waktu tambahan ini untuk memantau dan mencatat semua komunikasi antara perangkat dan broker. Waktu eksekusi tambahan dapat dikonfigurasi menggunakan `ADDITIONAL_EXECUTION_TIME` opsi. Secara default, opsi ini diatur ke 0 menit dan bisa 0 hingga 120 menit. 

## Opsi konfigurasi uji durasi panjang MQTT
<a name="long-duration-test-case-config-options"></a>

Semua opsi konfigurasi yang disediakan untuk uji durasi panjang MQTT adalah opsional. Pilihan berikut tersedia:

**OPERASI**  
Daftar operasi yang dilakukan perangkat, seperti`CONNECT`, `PUBLISH` dan`SUBSCRIBE`. Kasus uji menjalankan skenario berdasarkan operasi yang ditentukan. Operasi yang tidak ditentukan dianggap valid.  

```
{                                
"OPERATIONS": ["PUBLISH", "SUBSCRIBE"]
//by default the test assumes device can CONNECT   
}
```

**SKENARIO**  
Berdasarkan operasi yang dipilih, kasus uji menjalankan skenario untuk memvalidasi perilaku perangkat. Ada dua jenis skenario:  
+ **Skenario Dasar** adalah tes sederhana yang memvalidasi jika perangkat dapat melakukan operasi yang dipilih di atas sebagai bagian dari konfigurasi. Ini dipilih sebelumnya berdasarkan operasi yang ditentukan dalam konfigurasi. Tidak ada lagi input yang diperlukan dalam konfigurasi.
+ **Skenario Lanjutan** adalah skenario yang lebih kompleks yang dilakukan terhadap perangkat untuk memvalidasi jika perangkat mengikuti praktik terbaik saat dipenuhi dengan kondisi dunia nyata. Ini opsional dan dapat diteruskan sebagai larik skenario ke input konfigurasi rangkaian pengujian.

```
{                                
    "SCENARIOS": [      // list of advanced scenarios
                "PUBACK_QOS_1",
                "RECEIVE_LARGE_PAYLOAD",
                "PERSISTENT_SESSION",
                "KEEP_ALIVE",
                "INTERMITTENT_CONNECTIVITY",
                "RECONNECT_BACK_OFF",
                "LONG_SERVER_DISCONNECT"
    ]  
}
```

**BASIC\$1TESTS\$1EXECUTION\$1TIME\$1OUT:**  
Waktu maksimum kasus uji akan menunggu semua tes dasar selesai. Nilai default adalah 60 menit. Nilai ini dapat dikonfigurasi dari 30 hingga 120 menit.

**LONG\$1SERVER\$1DISCONNECT\$1TIME:**  
Waktu yang dibutuhkan untuk kasus uji untuk memutuskan sambungan dan menyambungkan kembali perangkat selama pengujian Long Server Disconnect. Nilai default adalah 60 menit. Nilai ini dapat dikonfigurasi dari 30 hingga 120 menit.

**TAMBAHAN\$1EXECUTION\$1TIME:**  
Mengkonfigurasi opsi ini menyediakan jendela waktu setelah semua tes selesai, untuk memantau peristiwa antara perangkat dan broker. Nilai defaultnya adalah 0 menit. Nilai ini dapat dikonfigurasi dari 0 hingga 120 menit.

**BACKOFF\$1CONNECTION\$1ATTEMPTS:**  
Opsi ini mengonfigurasi berapa kali perangkat terputus oleh kasus uji. Ini digunakan oleh tes Reconnect Backoff. Nilai defaultnya adalah 5 percobaan. Nilai ini dapat dikonfigurasi dari 5 hingga 10.

**FORMAT LONG\$1PAYLOAD\$1:**  
Format payload pesan yang diharapkan perangkat saat kasus uji diterbitkan ke topik QoS 1 yang dilanggan oleh perangkat.

**Definisi kasus uji API:**

```
{                                
"tests":[
   {
      "name":"my_mqtt_long_duration_test",
      "configuration": {
         // optional
         "OPERATIONS": ["PUBLISH", "SUBSCRIBE"], 
         "SCENARIOS": [      
            "LONG_SERVER_DISCONNECT", 
            "RECONNECT_BACK_OFF",
            "KEEP_ALIVE",
            "RECEIVE_LARGE_PAYLOAD",
            "INTERMITTENT_CONNECTIVITY",
            "PERSISTENT_SESSION",   
         ],
         "BASIC_TESTS_EXECUTION_TIMEOUT": 60, // in minutes (60 minutes by default)
         "LONG_SERVER_DISCONNECT_TIME": 60,   // in minutes (120 minutes by default)
         "ADDITIONAL_EXECUTION_TIME": 60,     // in minutes (0 minutes by default)
         "BACKOFF_CONNECTION_ATTEMPTS": "5",
         "LONG_PAYLOAD_FORMAT":"{"message":"${payload}"}"
      },
      "test":{
         "id":"MQTT_Long_Duration",
         "version":"0.0.0"
      }
   }
 ]      
}
```

## Log ringkasan kasus uji durasi panjang MQTT
<a name="long-duration-test-case-summary-log"></a>

Kasus uji durasi panjang MQTT berjalan untuk durasi yang lebih lama daripada kasus uji biasa. Log ringkasan terpisah disediakan, yang mencantumkan peristiwa penting seperti koneksi perangkat, mempublikasikan, dan berlangganan selama dijalankan. Rincian termasuk apa yang diuji, apa yang tidak diuji dan apa yang gagal. Di akhir log, pengujian mencakup ringkasan semua peristiwa yang terjadi selama uji kasus dijalankan. Hal ini mencakup:
+ *Keep Alive timer dikonfigurasi pada perangkat.*
+ *Bendera sesi persisten dikonfigurasi pada perangkat.*
+ *Jumlah koneksi perangkat selama uji coba.*
+ *Jenis backoff koneksi ulang perangkat, jika divalidasi untuk uji backoff sambungkan kembali.*
+ *Topik yang dipublikasikan perangkat, selama uji kasus dijalankan.*
+ *Topik yang dilanggani perangkat, selama uji kasus dijalankan.*