View a markdown version of this page

Tes durasi panjang - AWS IoT Core

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

Tes durasi panjang

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, uji durasi panjang memeriksa perilaku perangkat dalam berbagai skenario dunia nyata selama masa pakai perangkat. Device Advisor mengatur pengujian dalam urutan seefisien mungkin. Pengujian menghasilkan hasil dan log, termasuk log ringkasan dengan metrik berguna tentang kinerja perangkat saat sedang diuji.

Kasus uji durasi panjang MQTT

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

Alur eksekusi kasus uji durasi panjang MQTT

Ada tiga fase dalam pelaksanaan kasus uji durasi panjang MQTT:

“Eksekusi uji Durasi Panjang MQTT” yang menunjukkan eksekusi pengujian dasar, eksekusi pengujian lanjutan, dan waktu eksekusi tambahan.

Eksekusi tes dasar

Pada fase ini, kasus uji menjalankan tes sederhana secara paralel. Tes memvalidasi jika perangkat memiliki operasi yang dipilih dalam konfigurasi.

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

MENGHUBUNG

Skenario ini memvalidasi jika perangkat dapat membuat koneksi yang berhasil dengan broker.

Alur koneksi dasar yang mencakup perangkat yang mengirim pesan CONNECT dan Broker merespons dengan pesan CONNACK dengan kode pengembalian yang berhasil.

MENERBITKAN

Skenario ini memvalidasi jika perangkat berhasil menerbitkan terhadap broker.

QoS 0

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

Alur PUBLISH QoS 0 yang mencakup perangkat yang mengirim pesan PUBLISH dengan tingkat QoS 0.
QoS 1

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 kembali 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 lagiPUBLISH, yang asli PUBACK dikirim ke perangkat dan tes ditandai sebagai Lulus dengan peringatan, bersama dengan pesan sistem. Selama eksekusi pengujian, jika perangkat kehilangan koneksi dan terhubung kembali, skenario pengujian akan diatur ulang tanpa gagal dan perangkat harus melakukan langkah-langkah skenario pengujian lagi.

Alur PUBLISH QoS 1 yang mencakup perangkat yang mengirim pesan PUBLISH dengan tingkat QoS 1 dan beberapa interaksi dengan broker.

BERLANGGANAN

Skenario ini memvalidasi jika perangkat berhasil berlangganan terhadap broker.

QoS 0

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

Alur SUBSCRIBE QoS 0 yang mencakup perangkat yang mengirim pesan SUBSCRIBE dengan tingkat QoS 0 dan broker yang merespons dengan pesan SUBACK dan kode Success Maximum QoS 0.
QoS 1

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 kembali 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 lagiSUBSCRIBE, yang asli SUBACK dikirim ke perangkat dan tes ditandai sebagai Lulus dengan peringatan, bersama dengan pesan sistem. Selama eksekusi pengujian, jika perangkat kehilangan koneksi dan terhubung 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 tingkat QoS 1 dan beberapa interaksi dengan broker.

MENYAMBUNG KEMBALI

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 sekali sebelumnya selama rangkaian pengujian. Sebaliknya, itu akan menandai tes sebagai Lul us.

Aliran RECONNECT antara DUT dan broker.

Eksekusi tes lanjutan

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

KEMBALIKAN PUBACK PADA LANGGANAN QoS 1

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

Aliran SUBSCTIPTION RETURN PUBACK ON QoS 1 antara DUT dan broker.

MENERIMA MUATAN BESAR

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 muatan yang diharapkan dapat dikonfigurasi menggunakan LONG_PAYLOAD_FORMAT opsi.

Aliran RECEIVE LARGE PAYLOAD antara DUT dan broker.

SESI PERSISTEN

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 ulang topik tersebut.

  • Perangkat berhasil menerima pesan yang disimpan oleh broker untuk topik berlangganan dan berjalan seperti yang diharapkan.

Untuk informasi selengkapnya tentang S AWS IoT esi Persisten, lihat Menggunakan sesi persisten MQTT.

Aliran SESI PERSISTEN antara DUT dan broker.

TETAP HIDUP

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 dikirimPUBLISH,SUBSCRIBE, dan PINGREQ pesan. Ini juga memvalidasi jika perangkat yang diuji memutuskan koneksi MQTT.

Aliran KEEP ALIVE antara DUT dan broker.

KONEKTIVITAS INTERMITEN

Skenario ini memvalidasi jika perangkat dapat terhubung kembali ke broker setelah broker memutuskan perangkat secara acak untuk periode waktu acak.

Aliran KONEKTIVITAS INTERMITTENT antara DUT dan broker.

SAMBUNGKAN KEMBALI BACKOFF

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

Untuk lulus tes ini, kami sarankan menerapkan mekanisme Eksponensial Backoff And Jitter pada perangkat yang sedang diuji.

Aliran RECONNECT BACKOFF antara DUT dan broker.

PEMUTUSAN SERVER YANG PANJANG

Skenario ini memvalidasi jika perangkat berhasil terhubung kembali setelah broker memutuskan perangkat untuk jangka waktu yang lama (hingga 120 menit). Waktu 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.

Waktu eksekusi tambahan

Waktu eksekusi tambahan adalah waktu tes 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

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

OPERASI

Daftar operasi yang dilakukan perangkat, sepertiCONNECT, PUBLISH danSUBSCRIBE. Kasus uji menjalankan skenario berdasarkan operasi yang ditentukan. Operasi yang tidak ditentukan diasumsikan 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 ketika bertemu dengan kondisi dunia nyata. Ini opsional dan dapat diteruskan sebagai array 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" ] }
DASAR_TESTS_EXECUTION_TIME_OUT:

Waktu maksimum kasus uji akan menunggu semua tes dasar selesai. Nilai default adalah 60 menit. Nilai ini dapat dikonfigurasi dari 30 hingga 120 menit.

WAKTU_PEMUTUSAN SERVER PANJANG:

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.

WAKTU_EKSEKUSI TAMBAHAN:

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

Opsi ini mengonfigurasi berapa kali perangkat terputus oleh kasus uji. Ini digunakan oleh tes Reconconnect Backoff. Nilai defaultnya adalah 5 percobaan. Nilai ini dapat dikonfigurasi dari 5 hingga 10.

FORMAT PAYLOAD_PANJANG:

Format muatan pesan yang diharapkan perangkat ketika kasus uji diterbitkan ke topik QoS 1 yang berlangganan 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

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, publikasi, dan berlangganan selama menjalankan. Rincian termasuk apa yang diuji, apa yang tidak diuji dan apa yang gagal. Di akhir log, pengujian menyertakan ringkasan semua peristiwa yang terjadi selama uji coba dijalankan. Hal ini mencakup:

  • Timer Keep Alive dikonfigurasi pada perangkat.

  • Bendera sesi persisten dikonfigurasi pada perangkat.

  • Jumlah koneksi perangkat selama uji coba.

  • Jenis backoff sambungan ulang perangkat, jika divalidasi untuk uji backoff sambungkan kembali.

  • Topik yang dipublikasikan perangkat, selama uji coba dijalankan.

  • Topik yang ditandatangani perangkat, selama uji coba dijalankan.