

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.

# Mengonfigurasi pengaturan untuk test runner
<a name="set-config-custom"></a>

Untuk menjalankan rangkaian tes kustom, test runner harus mengonfigurasi pengaturannya berdasarkan rangkaia tes yang ingin dijalankannya. Pengaturan ditentukan berdasarkan templat file konfigurasi JSON yang terletak di folder `<device-tester-extract-location>/configs/`. Jika diperlukan, pelari uji juga harus menyiapkan AWS kredensional yang akan digunakan IDT untuk terhubung ke cloud. AWS 

Sebagai penyusun tes, Anda perlu mengonfigurasi file-file ini untuk [men-debug rangkaian tes](run-tests-custom.md). Anda harus memberikan petunjuk kepada test runner agar dapat mengonfigurasi pengaturan berikut yang diperlukan untuk menjalankan rangkaian tes Anda. 

## Konfigurasikan device.json
<a name="device-config-custom"></a>

File `device.json` berisi informasi tentang perangkat tempat uji dijalankan (misalnya, alamat IP, informasi login, sistem operasi, dan arsitektur CPU). 

Test runner dapat memberikan informasi ini dengan menggunakan file `device.json` templat berikut yang terletak di folder `<device-tester-extract-location>/configs/`.

```
[
    {
        "id": "<pool-id>",
        "sku": "<pool-sku>",
        "features": [
            {
                "name": "<feature-name>",             
                "value": "<feature-value>",                
                "configs": [
                    {
                        "name": "<config-name>",                    
                        "value": "<config-value>"
                    }
                ],
            }
        ],     
        "devices": [
            {
                "id": "<device-id>",              
                "connectivity": {
                    "protocol": "ssh | uart | docker",                   
                    // ssh
                    "ip": "<ip-address>",
                    "port": <port-number>,
                    "auth": {
                        "method": "pki | password",
                        "credentials": {
                            "user": "<user-name>", 
                            // pki
                            "privKeyPath": "/path/to/private/key",
                                         
                            // password
                            "password": "<password>",
                        }
                    },
                    
                    // uart
                    "serialPort": "<serial-port>",
                    
                    // docker
                    "containerId": "<container-id>",
                    "containerUser": "<container-user-name>",
                }
            }
        ]
    }
]
```

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

`id`  
ID alfanumerik yang ditetapkan pengguna secara unik mengidentifikasi kumpulan perangkat yang disebut *kolam perangkat*. Perangkat yang termasuk dalam suatu kolam harus memiliki perangkat keras yang identik. Ketika Anda menjalankan serangkaian tes, perangkat di kolam tersebut digunakan untuk memparalelkan beban kerja. Beberapa perangkat digunakan untuk menjalankan tes yang berbeda.

`sku`  
Nilai alfanumerik secara unik mengidentifikasi perangkat yang sedang diuji. SKU digunakan untuk melacak perangkat yang berkualitas.  
Jika Anda ingin mencantumkan papan Anda di Katalog AWS Partner Perangkat, SKU yang Anda tentukan di sini harus cocok dengan SKU yang Anda gunakan dalam proses daftar.

`features`  
Tidak wajib. Rangkaian yang berisi fitur perangkat yang didukung. Fitur perangkat adalah nilai-nilai yang ditetapkan pengguna yang Anda konfigurasikan di rangkaian tes Anda. Anda harus memberikan informasi kepada test runner tentang nama fitur dan nilai-nilai yang akan disertakan dalam file `device.json`. Misalnya, jika Anda ingin menguji perangkat yang berfungsi sebagai server MQTT untuk perangkat lain, maka Anda dapat mengonfigurasi logika uji Anda untuk memvalidasi tingkat tertentu yang didukung untuk fitur bernama `MQTT_QOS`. Test runner memberikan nama fitur ini dan menetapkan nilai fitur ke tingkat QOS yang didukung oleh perangkatnya. Anda dapat mengambil informasi yang diberikan dari [konteks IDT](idt-context.md) dengan kueri `devicePool.features`, atau dari [konteks state machine](idt-state-machine.md#state-machine-context) dengan kueri `pool.features`.    
`features.name`  
Nama fitur.  
`features.value`  
Nilai fitur yang didukung.  
`features.configs`  
Pengaturan konfigurasi, jika diperlukan, untuk fitur.    
`features.config.name`  
Nama pengaturan konfigurasi.  
`features.config.value`  
Nilai pengaturan yang didukung.

`devices`  
Rangkaian perangkat di kolam yang akan diuji. Setidaknya diperlukan satu perangkat.  <a name="device-array-fields"></a>  
`devices.id`  
Pengenal unik yang ditetapkan pengguna untuk perangkat yang sedang diuji.  
`connectivity.protocol`  
Protokol komunikasi yang digunakan untuk berkomunikasi dengan perangkat ini. Setiap perangkat di kolam harus menggunakan protokol yang sama.  
Saat ini, satu-satunya nilai yang didukung adalah `ssh` dan `uart` untuk perangkat fisik, dan `docker` untuk kontainer Docker.  
`connectivity.ip`  
Alamat IP perangkat yang sedang diuji.  
<a name="connectivity-protocol-ssh-only"></a>Properti ini hanya berlaku jika `connectivity.protocol` diatur ke `ssh`.  
`connectivity.port`  
Tidak wajib. Jumlah port yang akan digunakan untuk koneksi SSH.  
Nilai default-nya adalah 22.  
<a name="connectivity-protocol-ssh-only"></a>Properti ini hanya berlaku jika `connectivity.protocol` diatur ke `ssh`.  
`connectivity.auth`  
Informasi autentikasi untuk koneksi tersebut.  
<a name="connectivity-protocol-ssh-only"></a>Properti ini hanya berlaku jika `connectivity.protocol` diatur ke `ssh`.    
`connectivity.auth.method`  
Metode autentikasi yang digunakan untuk mengakses perangkat melalui protokol konektivitas yang diberikan.  
Nilai yang didukung adalah:  
+ `pki`
+ `password`  
`connectivity.auth.credentials`  
Kredensial yang digunakan untuk autentikasi.    
`connectivity.auth.credentials.password`  
Kata sandi yang digunakan untuk masuk ke perangkat yang sedang diuji.  
Nilai ini hanya berlaku jika `connectivity.auth.method` diatur ke `password`.  
`connectivity.auth.credentials.privKeyPath`  
Jalur lengkap ke kunci privat yang digunakan untuk masuk ke perangkat yang sedang diuji.  
Nilai ini hanya berlaku jika `connectivity.auth.method` diatur ke `pki`.  
`connectivity.auth.credentials.user`  
Nama pengguna untuk masuk ke perangkat yang sedang diuji.  
`connectivity.serialPort`  
Tidak wajib. Port serial tempat perangkat itu terhubung.  
Properti ini hanya berlaku jika `connectivity.protocol` diatur ke `uart`.  
`connectivity.containerId`  
ID kontainer atau nama kontainer Docker yang sedang diuji.  
<a name="connectivity-protocol-docker-only"></a>Properti ini hanya berlaku jika `connectivity.protocol` diatur ke `docker`.  
`connectivity.containerUser`  
Tidak wajib. Nama pengguna untuk pengguna di dalam kontainer. Nilai default adalah pengguna yang disediakan di Dockerfile.  
Nilai default-nya adalah 22.  
<a name="connectivity-protocol-docker-only"></a>Properti ini hanya berlaku jika `connectivity.protocol` diatur ke `docker`.
Untuk memeriksa apakah test runner mengonfigurasi koneksi perangkat yang salah untuk suatu pengujian, Anda dapat mengambil `pool.Devices[0].Connectivity.Protocol` dari konteks state machine dan membandingkannya dengan nilai yang diharapkan pada keadaan `Choice`. Jika protokol yang salah digunakan, cetak pesan dengan menggunakan keadaan `LogMessage` dan beralihlah ke keadaan `Fail`.  
Atau, Anda dapat menggunakan kode penanganan kesalahan untuk melaporkan kegagalan pengujian untuk jenis perangkat yang salah.

## (Opsional) Konfigurasikan userdata.json
<a name="userdata-config-custom"></a>

File `userdata.json` berisi informasi tambahan yang diperlukan oleh rangkaian tes tetapi tidak ditentukan dalam file `device.json`. Format file ini tergantung pada [file `userdata_scheme.json`](idt-json-config.md#userdata-schema-json) yang ditentukan dalam rangkaian uji tersebut. Jika Anda seorang penyusun tes, pastikan Anda memberikan informasi ini kepada pengguna yang akan menjalankan rangkaian tes yang Anda susun.

## (Opsional) Konfigurasikan resource.json
<a name="resource-config-custom"></a>

File `resource.json` berisi informasi tentang perangkat apa pun yang akan digunakan sebagai perangkat sumber daya. Perangkat sumber daya adalah perangkat yang diperlukan untuk menguji kemampuan tertentu dari perangkat yang diuji. Misalnya, untuk menguji kemampuan Bluetooth perangkat, Anda mungkin menggunakan perangkat sumber daya untuk menguji apakah perangkat Anda dapat berhasil tersambung. Perangkat sumber daya bersifat opsional, dan Anda dapat memerlukan perangkat sumber daya sebanyak yang Anda butuhkan. Sebagai penyusun tes, Anda menggunakan [file test.json](idt-json-config.md#test-json) untuk menentukan fitur perangkat sumber daya yang diperlukan untuk tes. Test runner kemudian akan menggunakan file `resource.json` untuk menyediakan kolam perangkat sumber daya yang memiliki fitur yang diperlukan. Pastikan Anda memberikan informasi ini kepada pengguna yang akan menjalankan rangkaian tes yang Anda tulis. 

Test runner dapat memberikan informasi ini dengan menggunakan file `resource.json` templat berikut yang terletak di folder `<device-tester-extract-location>/configs/`.

```
[
    {
        "id": "<pool-id>",
        "features": [
            {
                "name": "<feature-name>",             
                "version": "<feature-value>",                
                "jobSlots": <job-slots>
            }
        ],     
        "devices": [
            {
                "id": "<device-id>",              
                "connectivity": {
                    "protocol": "ssh | uart | docker",                   
                    // ssh
                    "ip": "<ip-address>",
                    "port": <port-number>,
                    "auth": {
                        "method": "pki | password",
                        "credentials": {
                            "user": "<user-name>", 
                            // pki
                            "privKeyPath": "/path/to/private/key",
                                         
                            // password
                            "password": "<password>",
                        }
                    },
                    
                    // uart
                    "serialPort": "<serial-port>",
                    
                    // docker
                    "containerId": "<container-id>",
                    "containerUser": "<container-user-name>",
                }
            }
        ]
    }
]
```

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

`id`  
ID alfanumerik yang ditetapkan pengguna secara unik mengidentifikasi kumpulan perangkat yang disebut *kolam perangkat*. Perangkat yang termasuk dalam suatu kolam harus memiliki perangkat keras yang identik. Ketika Anda menjalankan serangkaian tes, perangkat di kolam tersebut digunakan untuk memparalelkan beban kerja. Beberapa perangkat digunakan untuk menjalankan tes yang berbeda.

`features`  
Tidak wajib. Rangkaian yang berisi fitur perangkat yang didukung. Informasi yang diperlukan dalam kolom ini ditentukan dalam [file test.json](idt-json-config.md#test-json) di rangkaian tes dan menentukan tes mana yang akan dijalankan dan bagaimana menjalankan tes tersebut. Jika rangkaian tes tidak memerlukan fitur apa pun, kolom ini tidak wajib diisi.    
`features.name`  
Nama fitur.  
`features.version`  
Versi fitur.  
`features.jobSlots`  
Pengaturan untuk menunjukkan berapa banyak tes yang dapat secara bersamaan menggunakan perangkat. Nilai default-nya adalah `1`.

`devices`  <a name="device-array"></a>
Rangkaian perangkat di kolam yang akan diuji. Setidaknya diperlukan satu perangkat.  <a name="device-array-fields"></a>  
`devices.id`  
Pengenal unik yang ditetapkan pengguna untuk perangkat yang sedang diuji.  
`connectivity.protocol`  
Protokol komunikasi yang digunakan untuk berkomunikasi dengan perangkat ini. Setiap perangkat di kolam harus menggunakan protokol yang sama.  
Saat ini, satu-satunya nilai yang didukung adalah `ssh` dan `uart` untuk perangkat fisik, dan `docker` untuk kontainer Docker.  
`connectivity.ip`  
Alamat IP perangkat yang sedang diuji.  
<a name="connectivity-protocol-ssh-only"></a>Properti ini hanya berlaku jika `connectivity.protocol` diatur ke `ssh`.  
`connectivity.port`  
Tidak wajib. Jumlah port yang akan digunakan untuk koneksi SSH.  
Nilai default-nya adalah 22.  
<a name="connectivity-protocol-ssh-only"></a>Properti ini hanya berlaku jika `connectivity.protocol` diatur ke `ssh`.  
`connectivity.auth`  
Informasi autentikasi untuk koneksi tersebut.  
<a name="connectivity-protocol-ssh-only"></a>Properti ini hanya berlaku jika `connectivity.protocol` diatur ke `ssh`.    
`connectivity.auth.method`  
Metode autentikasi yang digunakan untuk mengakses perangkat melalui protokol konektivitas yang diberikan.  
Nilai yang didukung adalah:  
+ `pki`
+ `password`  
`connectivity.auth.credentials`  
Kredensial yang digunakan untuk autentikasi.    
`connectivity.auth.credentials.password`  
Kata sandi yang digunakan untuk masuk ke perangkat yang sedang diuji.  
Nilai ini hanya berlaku jika `connectivity.auth.method` diatur ke `password`.  
`connectivity.auth.credentials.privKeyPath`  
Jalur lengkap ke kunci privat yang digunakan untuk masuk ke perangkat yang sedang diuji.  
Nilai ini hanya berlaku jika `connectivity.auth.method` diatur ke `pki`.  
`connectivity.auth.credentials.user`  
Nama pengguna untuk masuk ke perangkat yang sedang diuji.  
`connectivity.serialPort`  
Tidak wajib. Port serial tempat perangkat itu terhubung.  
Properti ini hanya berlaku jika `connectivity.protocol` diatur ke `uart`.  
`connectivity.containerId`  
ID kontainer atau nama kontainer Docker yang sedang diuji.  
<a name="connectivity-protocol-docker-only"></a>Properti ini hanya berlaku jika `connectivity.protocol` diatur ke `docker`.  
`connectivity.containerUser`  
Tidak wajib. Nama pengguna untuk pengguna di dalam kontainer. Nilai default adalah pengguna yang disediakan di Dockerfile.  
Nilai default-nya adalah 22.  
<a name="connectivity-protocol-docker-only"></a>Properti ini hanya berlaku jika `connectivity.protocol` diatur ke `docker`.

## (Opsional) Konfigurasikan config.json
<a name="config-json-custom"></a>

File `config.json` berisi informasi konfigurasi untuk IDT. Biasanya, pelari uji tidak perlu memodifikasi file ini kecuali untuk memberikan kredensi AWS pengguna mereka untuk IDT, dan secara opsional, suatu wilayah. AWS Jika AWS kredensional dengan izin yang diperlukan disediakan Penguji AWS IoT Perangkat mengumpulkan dan mengirimkan metrik penggunaan ke. AWS Ini adalah fitur opt-in dan digunakan untuk meningkatkan fungsi IDT. Untuk informasi selengkapnya, lihat [Metrik penggunaan IDT](idt-usage-metrics.md).

Pelari uji dapat mengonfigurasi AWS kredensialnya dengan salah satu cara berikut:
+ **File kredensional**

  IDT menggunakan file kredensial yang sama sebagai AWS CLI. Untuk informasi selengkapnya, lihat [File konfigurasi dan kredensial](https://docs.aws.amazon.com/cli/latest/userguide/cli-config-files.html).

  Lokasi file kredensial itu bervariasi, tergantung pada sistem operasi yang Anda gunakan:
  + macOS, Linux: `~/.aws/credentials`
  + Windows: `C:\Users\UserName\.aws\credentials`
+ **Variabel lingkungan**

  Variabel lingkungan adalah variabel yang dikelola oleh sistem operasi dan digunakan oleh perintah sistem. Variabel yang ditentukan selama sesi SSH tidak akan tersedia setelah sesi itu ditutup. IDT dapat menggunakan variabel `AWS_ACCESS_KEY_ID` dan `AWS_SECRET_ACCESS_KEY` lingkungan untuk menyimpan AWS kredensional

  Untuk mengatur variabel ini di Linux, macOS, atau Unix, gunakan **export**:

  ```
  export AWS_ACCESS_KEY_ID=<your_access_key_id>
  export AWS_SECRET_ACCESS_KEY=<your_secret_access_key>
  ```

  Untuk menetapkan variabel ini di Windows, gunakan **set**:

  ```
  set AWS_ACCESS_KEY_ID=<your_access_key_id>
  set AWS_SECRET_ACCESS_KEY=<your_secret_access_key>
  ```

Untuk mengonfigurasi AWS kredensi IDT, pelari uji mengedit `auth` bagian dalam `config.json` file yang terletak di folder. `<device-tester-extract-location>/configs/`

```
{
    "log": {
        "location": "logs"
    },
    "configFiles": {
        "root": "configs",
        "device": "configs/device.json"
    },
    "testPath": "tests",
    "reportPath": "results",
    "awsRegion": "<region>",
    "auth": {
        "method": "file | environment",
        "credentials": {
            "profile": "<profile-name>"
        }
    }
}
]
```

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

**catatan**  
Semua jalur dalam file ini didefinisikan relatif terhadap file*<device-tester-extract-location>*.

`log.location`  
Jalur ke folder log di file*<device-tester-extract-location>*.

`configFiles.root`  
Path ke folder yang berisi file konfigurasi.

`configFiles.device`  
Jalur ke file `device.json`.

`testPath`  
Path ke folder yang berisi rangkaian tes.

`reportPath`  
Path ke folder yang akan berisi hasil tes setelah IDT menjalankan rangkaian tes.

`awsRegion`  
Tidak wajib. AWS Wilayah yang akan digunakan test suite. Jika tidak ditetapkan, rangkaian tes akan menggunakan wilayah default yang ditentukan dalam setiap rangkaian tes.

`auth.method`  
Metode yang digunakan IDT untuk mengambil kredensional AWS . Nilai yang didukung adalah `file` untuk mengambil kredensial dari file kredensial, dan `environment` untuk mengambil klredensial dengan menggunakan variabel lingkungan.

`auth.credentials.profile`  
Profil kredensial yang akan digunakan dari file kredensial. Properti ini hanya berlaku jika `auth.method` diatur ke `file`.