Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Alur kerja Penasihat Perangkat
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
Sebelum Anda memulai tutorial ini tutorial ini, selesaikan langkah-langkah yang diuraikan diPenyiapan.
Buat definisi rangkaian pengujian
Pertama, instal AWS SDK.
Sintaks RootGroup
Grup root adalah string JSON yang menentukan kasus uji 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)
Rangkaian pengujian harus memiliki setidaknya satu kelompok pengujian, dan setiap kelompok pengujian harus memiliki setidaknya satu kasus uji. Device Advisor menjalankan pengujian sesuai urutan di mana Anda menentukan grup pengujian dan kasus uji.
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 a nameconfiguration,, dan tests yang berisi grup. testsKelompok ini berisi definisi tes individu. Anda menentukan setiap pengujian denganname,configuration, dan test blok yang mendefinisikan kasus uji untuk pengujian itu. Akhirnya, setiap kasus uji didefinisikan dengan id danversion.
Untuk informasi tentang cara menggunakan "version" bidang "id" dan untuk setiap kasus uji (testblok), lihatKasus uji Device Advisor. 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 Anda. Simpan suiteDefinitionId yang dikembalikan dalam objek respons. 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 rangkaian pengujian
Setelah Anda membuat definisi rangkaian pengujian, Anda menerima objek respons suiteDefinitionId dalam operasi CreateSuiteDefinition API.
Ketika operasi mengembalikansuiteDefinitionId, Anda mungkin melihat id bidang baru dalam setiap grup dan definisi kasus uji dalam grup root. Anda dapat menggunakan ID ini untuk menjalankan subset definisi rangkaian pengujian Anda.
Contoh Java SDK:
response = iotDeviceAdvisorClient.GetSuiteDefinition( GetSuiteDefinitionRequest.builder() .suiteDefinitionId("your-suite-definition-id") .build() )
Dapatkan titik akhir pengujian
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 Device-level titik akhir dengan menyediakanthing
ARN,certificate ARN, ataudevice role ARN. Untuk menjalankan rangkaian pengujian tunggal, jangan berikan argumen ke GetEndpoint operasi untuk memilih Account-level titik akhir.
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())
Mulai menjalankan rangkaian pengujian
Setelah Anda membuat definisi rangkaian pengujian dan mengonfigurasi perangkat pengujian Anda untuk terhubung ke titik akhir pengujian Device Advisor Anda, 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 itu.
Untuk WebSocket pelanggan MQTT over, gunakan deviceRoleArn untuk menjalankan rangkaian pengujian. Jika peran yang ditentukan berbeda dari peran yang ditentukan dalam definisi rangkaian pengujian, peran yang ditentukan menggantikan peran yang ditentukan.
Untuk.parallelRun(), gunakan true jika Anda menggunakan titik Device-level akhir 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 tanggapan. Anda akan menggunakan ini untuk mengambil hasil dari rangkaian pengujian ini.
Jalankan rangkaian pengujian
Setelah menjalankan test suite, 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())
Menghentikan menjalankan rangkaian pengujian
Untuk menghentikan proses rangkaian pengujian yang masih berlangsung, Anda dapat memanggil operasi StopSuiteRun API. Setelah Anda memang StopSuiteRun gil operasi, layanan memulai proses pembersihan. Saat layanan menjalankan proses pembersihan, rangkaian pengujian menjalankan pembaruan status keStopping. Proses pembersihan bisa memakan waktu beberapa menit. Setelah proses selesai, rangkaian pengujian menjalankan pembaruan status keStopped. Setelah uji coba benar-benar berhenti, Anda memulai menjalankan rangkaian pengujian lain. Anda dapat memeriksa status run suite 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 uji kualifikasi yang berhasil
Jika menjalankan rangkaian uji 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 uji kualifikasi, periksa apakah intendedForQualification parameter disetel ketrue. 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() )