

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 yang Anda sertakan saat Anda menulis rangkaian pengujian kustom.

**File konfigurasi yang diperlukan**

**`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 konfigurasi opsional**

**`test_orchestrator.yaml` atau `state_machine.json`**  
Mendefinisikan bagaimana pengujian dijalankan saat IDT menjalankan rangkaian pengujian. SSe [Konfigurasikan test\$1orchestrator.yaml](#test-orchestrator-config).  
Mulai IDT v4.5.2, Anda menggunakan `test_orchestrator.yaml` file untuk menentukan alur kerja pengujian. Di versi IDT sebelumnya, Anda menggunakan `state_machine.json` file tersebut. Untuk informasi tentang mesin negara, lihat[Konfigurasikan state machine IDT](idt-state-machine.md).

**`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\$1schema.json](#userdata-schema-json).

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

```
<custom-test-suite-folder>
└── suite
    ├── suite.json
    ├── test_orchestrator.yaml
    ├── 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 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`](#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 memiliki 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
<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 kasus uji IDT yang dapat dieksekusi](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 memiliki 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 kasus uji IDT yang dapat dieksekusi](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 test\$1orchestrator.yaml
<a name="test-orchestrator-config"></a>

Orkestrator pengujian adalah konstruksi yang mengontrol alur eksekusi test suite. 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 pengujian Anda tidak menyertakan orkestrator pengujian yang ditentukan pengguna, IDT akan menghasilkan orkestrator pengujian untuk Anda.

Orkestrator uji 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 fungsi orkestrator pengujian IDT, lihat. [Konfigurasikan orkestrator uji IDT](idt-test-orchestrator.md)

## Konfigurasikan userdata\$1schema.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 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`.

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#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 `userdata.json` file tersedia dalam konteks [IDT dan dalam konteks](idt-context.md) [orkestrator pengujian](idt-test-orchestrator.md#idt-test-orchestrator-context).