

Pemberitahuan akhir dukungan: Pada 7 Oktober 2026, AWS akan menghentikan dukungan untuk. AWS IoT Greengrass Version 1 Setelah 7 Oktober 2026, Anda tidak akan lagi dapat mengakses sumber daya. AWS IoT Greengrass V1 Untuk informasi lebih lanjut, silakan kunjungi [Migrasi dari AWS IoT Greengrass Version 1](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html).

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
<a name="idt-json-config"></a>

Bagian ini menjelaskan format di mana Anda membuat file konfigurasi JSON yang Anda sertakan ketika Anda menyusun rangkaian uji kustom.<a name="required-json"></a>File JSON yang dibutuhkan

`suite.json`  
Berisi informasi tentang rangkaian pengujian. Lihat [Konfigurasikan suite.json](#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](#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](#test-json).File JSON opsional

`state_machine.json`  
Menentukan bagaimana tes akan dijalankan ketika IDT menjalankan rangkaian tes. Lihat [Konfigurasikan state\_machine.json](#state-machine-json).

`userdata_schema.json`  
Menentukan skema untuk [file `userdata.json`](set-config-custom.md#userdata-config-custom) 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](#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
<a name="suite-json"></a>

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 IDT-generated pengujian.

`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`](#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
<a name="group-json"></a>

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 `id` harus sesuai dengan nama folder grup uji tempat `group.json` file berada, dan tidak boleh mengandung garis bawah (`_`). ID digunakan dalam laporan IDT-generated pengujian.

`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
<a name="test-json"></a>

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](test-executables.md).

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 `id` harus sesuai dengan nama folder kasus uji tempat `test.json` file berada, dan tidak boleh mengandung garis bawah (`_`). ID digunakan dalam laporan IDT-generated pengujian.

`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](test-executables.md).

`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.
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
<a name="state-machine-json"></a>

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 state machine IDT](idt-state-machine.md).

## Konfigurasikan userdata\_schema.json
<a name="userdata-schema-json"></a>

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 kredensi Wi-Fi jaringan, port terbuka tertentu, atau sertifikat yang harus disediakan 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`.

1. Di `{{<custom-test-suite-folder>}}` Anda, buat file `userdata_schema.json`.

1. Edit file `userdata_schema.json` untuk membuat [Skema IETF Draft v4 JSON](https://json-schema.org/specification-links.html#draft-4) 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](idt-context.md) maupun di [konteks state machine](idt-state-machine.md#state-machine-context).