Buat file konfigurasi rangkaian tes IDT - AWS IoT Greengrass

AWS IoT Greengrass Version 1 memasuki fase umur panjang pada 30 Juni 2023. Untuk informasi selengkapnya, lihat kebijakan AWS IoT Greengrass V1 pemeliharaan. Setelah tanggal ini, tidak AWS IoT Greengrass V1 akan merilis pembaruan yang menyediakan fitur, penyempurnaan, perbaikan bug, atau patch keamanan. Perangkat yang berjalan AWS IoT Greengrass V1 tidak akan terganggu dan akan terus beroperasi dan terhubung ke cloud. Kami sangat menyarankan Anda bermigrasi ke AWS IoT Greengrass Version 2, yang menambahkan fitur baru yang signifikan dan dukungan untuk platform tambahan.

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

Buat file konfigurasi rangkaian tes IDT

Bagian ini menjelaskan format di mana Anda membuat file konfigurasi JSON yang Anda sertakan ketika Anda menyusun rangkaian uji kustom.

File JSON yang dibutuhkan
suite.json

Berisi informasi tentang rangkaian pengujian. Lihat Konfigurasikan suite.json.

group.json

Berisi informasi tentang grup uji. Anda harus membuat file group.json untuk setiap grup uji di rangkaian tes Anda. Lihat Konfigurasikan group.json.

test.json

Berisi informasi tentang grup uji. Anda harus membuat file test.json untuk setiap grup uji di rangkaian tes Anda. Lihat Konfigurasikan test.json.

File JSON opsional
state_machine.json

Menentukan bagaimana tes akan dijalankan ketika IDT menjalankan rangkaian tes. Lihat Konfigurasikan state_machine.json.

userdata_schema.json

Menentukan skema untuk file userdata.json yang dapat disertakan oleh test runner dalam konfigurasi pengaturannya. File userdata.json digunakan untuk konfigurasi informasi tambahan apa pun yang diperlukan untuk menjalankan tes tetapi tidak terdapat dalam file device.json. Lihat Konfigurasikan userdata_schema.json.

File konfigurasi JSON ditempatkan pada <custom-test-suite-folder> Anda seperti yang ditunjukkan di sini.

<custom-test-suite-folder> └── suite ├── suite.json ├── state_machine.json ├── userdata_schema.json ├── <test-group-folder> ├── group.json ├── <test-case-folder> └── test.json

Konfigurasikan suite.json

File suite.json menetapkan variabel lingkungan dan menentukan apakah data pengguna diperlukan untuk menjalankan rangkaian tes. Gunakan templat berikut untuk mengonfigurasi file <custom-test-suite-folder>/suite/suite.json Anda:

{ "id": "<suite-name>_<suite-version>", "title": "<suite-title>", "details": "<suite-details>", "userDataRequired": true | false, "environmentVariables": [ { "key": "<name>", "value": "<value>", }, ... { "key": "<name>", "value": "<value>", } ] }

Semua kolom yang berisi nilai wajib diisi seperti yang dijelaskan di sini:

id

ID unik yang ditetapkan pengguna untuk rangkaian uji. Nilai dari id harus cocok dengan nama folder rangkaian uji tempat file suite.json berada. Nama rangkaian dan versi rangkaian juga harus memenuhi persyaratan berikut:

  • <suite-name> tidak dapat berisi garis bawah.

  • <suite-version> dilambangkan sebagai x.x.x, di mana x adalah angka.

ID ditampilkan dalam laporan uji yang dihasilkan IDT.

title

Nama yang ditetapkan pengguna untuk produk atau fitur yang diuji oleh rangkaian tes ini. Nama ditampilkan dalam IDT CLI untuk test runner.

details

Deskripsi singkat tentang tujuan dari rangkaian tes.

userDataRequired

Menentukan apakah test runner perlu menyertakan informasi kustom dalam file userdata.json. Jika Anda menetapkan nilai ini ke true, Anda juga harus menyertakan file userdata_schema.json dalam folder rangkaian uji Anda.

environmentVariables

Tidak wajib. Serangkaian variabel lingkungan yang akan ditetapkan untuk rangkaian tes ini.

environmentVariables.key

Nama variabel lingkungan.

environmentVariables.value

Nilai variabel lingkungan.

Konfigurasikan group.json

File group.json menentukan apakah grup uji itu wajib atau opsional. Gunakan templat berikut untuk mengonfigurasi file <custom-test-suite-folder>/suite/<test-group>/group.json Anda:

{ "id": "<group-id>", "title": "<group-title>", "details": "<group-details>", "optional": true | false, }

Semua kolom yang berisi nilai wajib diisi seperti yang dijelaskan di sini:

id

ID unik yang ditetapkan pengguna untuk grup uji. Nilai dariidharus cocok dengan nama folder grup uji tempatgroup.jsonfile terletak, dan tidak boleh berisi garis bawah (_). ID digunakan dalam laporan uji yang dihasilkan IDT.

title

Nama deskriptif untuk grup uji. Nama tersebut ditampilkan dalam IDT CLI untuk test runner.

details

Deskripsi singkat tentang tujuan dari grup tes.

optional

Tidak wajib. Atur ke true untuk menampilkan grup tes ini sebagai grup opsional setelah IDT selesai menjalankan tes yang diperlukan. Nilai defaultnya adalah false.

Konfigurasikan test.json

File test.json menentukan executable uji kasus dan variabel lingkungan yang digunakan oleh uji kasus. Untuk informasi selengkapnya tentang cara membuat executable uji kasus, lihat Buat executable uji kasus IDT.

Gunakan templat berikut untuk mengonfigurasi file <custom-test-suite-folder>/suite/<test-group>/<test-case>/test.json Anda:

{ "id": "<test-id>", "title": "<test-title>", "details": "<test-details>", "requireDUT": true | false, "requiredResources": [ { "name": "<resource-name>", "features": [ { "name": "<feature-name>", "version": "<feature-version>", "jobSlots": <job-slots> } ] } ], "execution": { "timeout": <timeout>, "mac": { "cmd": "/path/to/executable", "args": [ "<argument>" ], }, "linux": { "cmd": "/path/to/executable", "args": [ "<argument>" ], }, "win": { "cmd": "/path/to/executable", "args": [ "<argument>" ] } }, "environmentVariables": [ { "key": "<name>", "value": "<value>", } ] }

Semua kolom yang berisi nilai wajib diisi seperti yang dijelaskan di sini:

id

ID unik yang ditetapkan pengguna untuk grup uji. Nilai dariidharus cocok dengan nama folder uji kasus tempattest.jsonfile terletak, dan tidak boleh berisi garis bawah (_). ID digunakan dalam laporan uji yang dihasilkan IDT.

title

Nama deskriptif untuk uji kasus. Nama tersebut ditampilkan dalam IDT CLI untuk test runner.

details

Deskripsi singkat tentang tujuan dari uji kasus.

requireDUT

Tidak wajib. Atur ke true jika perangkat diperlukan untuk menjalankan tes ini, jika tidak atur ke false. Nilai defaultnya adalah true. Test runner akan mengonfigurasi perangkat yang akan digunakannya untuk menjalankan pengujian di file device.json.

requiredResources

Tidak wajib. Serangkaian hal yang menyediakan informasi tentang perangkat sumber daya yang diperlukan untuk menjalankan tes ini.

requiredResources.name

Nama unik yang akan diberikan kepada sumber daya perangkat ketika tes ini berjalan.

requiredResources.features

Serangkaian fitur perangkat sumber daya yang ditetapkan pengguna.

requiredResources.features.name

Nama fitur. Fitur perangkat yang ingin Anda gunakan untuk perangkat ini. Nama ini dicocokkan dengan nama fitur yang disediakan oleh test runner di file resource.json.

requiredResources.features.version

Tidak wajib. Versi fitur. Nama ini dicocokkan dengan versi fitur yang disediakan oleh test runner di file resource.json. Jika versi tidak tersedia, maka fitur tersebut tidak dicentang. Jika nomor versi tidak diperlukan untuk fitur tersebut, biarkan kolom ini kosong.

requiredResources.features.jobSlots

Tidak wajib. Jumlah tes simultan yang dapat didukung fitur ini. Nilai default-nya adalah 1. Jika Anda ingin IDT menggunakan perangkat yang berbeda untuk masing-masing fitur, kami sarankan Anda menetapkan nilai ini ke 1.

execution.timeout

Jumlah waktu (dalam milidetik) yang ditunggu oleh IDT hingga tes tersebut selesai dijalankan. Untuk informasi selengkapnya tentang pengaturan parameter ini, lihat Buat executable uji kasus IDT.

execution.os

Executable uji kasus yang akan dijalankan berdasarkan sistem operasi komputer host yang menjalankan IDT. Nilai yang didukung adalah linux, mac, dan win.

execution.os.cmd

Jalur ke executable uji kasus yang ingin Anda jalankan untuk sistem operasi tertentu. Lokasi ini harus berada di jalur sistem.

execution.os.args

Tidak wajib. Argumen yang akan disediakan untuk menjalankan executable uji kasus.

environmentVariables

Tidak wajib. Serangkaian variabel lingkungan yang akan ditetapkan untuk uji kasus ini.

environmentVariables.key

Nama variabel lingkungan.

environmentVariables.value

Nilai variabel lingkungan.

catatan

Jika Anda menentukan variabel lingkungan yang sama di file test.json dan di file suite.json, nilai dalam file test.json akan diutamakan.

Konfigurasikan state_machine.json

State machine adalah suatu konstruksi yang mengendalikan aliran eksekusi rangkaian uji. Ia menentukan keadaan awal dari rangkaian tes, mengelola transisi keadaan berdasarkan aturan yang ditetapkan pengguna, dan terus melakukan transisi melalui keadaan-keadaan tersebut sampai mencapai keadaan akhir.

Jika rangkaian tes Anda tidak menyertakan state machine yang ditetapkan pengguna, IDT akan membuat state machine untuk Anda. State machine default melakukan fungsi-fungsi berikut:

  • Menyediakan test runner dengan kemampuan untuk memilih dan menjalankan grup uji tertentu, dan bukan seluruh rangkaian uji.

  • Jika grup uji tertentu tidak dipilih, ia menjalankan setiap grup uji di rangkaian uji dengan urutan acak.

  • Membuat laporan dan mencetak ringkasan konsol yang menunjukkan hasil tes untuk setiap grup uji dan uji kasus.

Untuk informasi selengkapnya tentang bagaimana state machine IDT bekerja, lihat Konfigurasikan mesin status IDT.

Konfigurasikan userdata_schema.json

File userdata_schema.json menentukan skema di mana test runner menyediakan data pengguna. Data pengguna diperlukan jika rangkaian uji Anda memerlukan informasi yang tidak ada di file device.json. Misalnya, pengujian Anda mungkin memerlukan kredensial jaringan Wi-Fi, port terbuka tertentu, atau sertifikat yang harus diberikan pengguna. Informasi ini dapat diberikan kepada IDT sebagai parameter input yang disebut userdata, nilai yang merupakan file userdata.json, yang dibuat oleh para pengguna dalam <device-tester-extract-location>/config mereka. Format file userdata.json didasarkan pada userdata_schema.json yang Anda sertakan dalam rangkaian tes.

Untuk menunjukkan hal tersebut test runner harus menyediakan file userdata.json:

  1. Di file suite.json, atur userDataRequired ke true.

  2. Di <custom-test-suite-folder> Anda, buat file userdata_schema.json.

  3. Edit file userdata_schema.json untuk membuat Skema IETF Draft v4 JSON yang valid.

Ketika IDT menjalankan rangkaian uji Anda, secara otomatis ia membaca skema dan menggunakannya untuk memvalidasi file userdata.json yang disediakan oleh test runner. Jika valid, isi file userdata.json akan tersedia baik di konteks IDT maupun di konteks state machine.