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
Untuk menjalankan rangkaian tes kustom, test runner harus mengonfigurasi pengaturannya berdasarkan rangkaia tes yang ingin dijalankannya. Pengaturan ditentukan berdasarkan templat file konfigurasi yang terletak di
folder. Jika diperlukan, pelari uji juga harus menyiapkan AWS kredensil yang IDT akan digunakan untuk terhubung ke cloud. AWS <device-tester-extract-location>
/configs/
Sebagai penyusun tes, Anda perlu mengonfigurasi file-file ini untuk men-debug rangkaian tes. Anda harus memberikan petunjuk kepada test runner agar dapat mengonfigurasi pengaturan berikut yang diperlukan untuk menjalankan rangkaian tes Anda.
Konfigurasikan device.json
device.json
File berisi informasi tentang perangkat tempat pengujian dijalankan (misalnya, alamat IP, informasi login, sistem operasi, dan CPU arsitektur).
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>
",
"pairedResource": "<device-id>
", //used for no-op protocol
"connectivity": {
"protocol": "ssh | uart | docker | no-op",
// ssh
"ip": "<ip-address>
",
"port": <port-number>
,
"publicKeyPath": "<public-key-path>
",
"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 yang secara unik mengidentifikasi perangkat yang diuji. SKUIni digunakan untuk melacak perangkat yang memenuhi syarat.
catatan
Jika Anda ingin mencantumkan papan Anda di Katalog Perangkat AWS Mitra, yang SKU Anda tentukan di sini harus sesuai 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 MQTT server untuk perangkat lain, Anda dapat mengonfigurasi logika pengujian untuk memvalidasi level tertentu yang didukung untuk fitur bernamaMQTT_QoS
. Pelari uji memberikan nama fitur ini dan menetapkan nilai fitur ke level QoS yang didukung oleh perangkat mereka. Anda dapat mengambil informasi yang disediakan dari IDTkonteks dengandevicePool.features
kueri, atau dari konteks mesin status denganpool.features
kueri.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.
devices.id
-
Pengenal unik yang ditetapkan pengguna untuk perangkat yang sedang diuji.
devices.pairedResource
-
Pengidentifikasi unik yang ditentukan pengguna untuk perangkat sumber daya. Nilai ini diperlukan saat Anda menguji perangkat menggunakan protokol
no-op
konektivitas. 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
danuart
untuk perangkat fisik,docker
untuk wadah Docker, danno-op
untuk perangkat yang tidak memiliki koneksi langsung dengan mesin IDT host tetapi memerlukan perangkat sumber daya sebagai middleware fisik untuk berkomunikasi dengan mesin host.Untuk perangkat tanpa operasi, Anda mengonfigurasi ID perangkat sumber daya di
devices.pairedResource
. Anda juga harus menentukan ID ini dalamresource.json
file. Perangkat yang dipasangkan harus berupa perangkat yang dipasangkan secara fisik dengan perangkat yang sedang diuji. Setelah IDT mengidentifikasi dan menghubungkan ke perangkat sumber daya yang dipasangkan, tidak IDT akan terhubung ke perangkat sumber daya lain sesuai dengan fitur yang dijelaskan dalam file.test.json
connectivity.ip
-
Alamat IP perangkat yang sedang diuji.
Properti ini hanya berlaku jika
connectivity.protocol
diatur kessh
. connectivity.port
-
Tidak wajib. Nomor port yang digunakan untuk SSH koneksi.
Nilai default-nya adalah 22.
Properti ini hanya berlaku jika
connectivity.protocol
diatur kessh
. connectivity.publicKeyPath
-
Tidak wajib. Jalur lengkap ke kunci publik digunakan untuk mengautentikasi koneksi ke perangkat yang sedang diuji. Saat Anda menentukan
publicKeyPath
, IDT memvalidasi kunci publik perangkat saat membuat SSH sambungan ke perangkat yang sedang diuji. Jika nilai ini tidak ditentukan, IDT buat SSH sambungan, tetapi tidak memvalidasi kunci publik perangkat.Kami sangat menyarankan Anda menentukan jalur ke kunci publik, dan Anda menggunakan metode aman untuk mengambil kunci publik ini. Untuk SSH klien berbasis baris perintah standar, kunci publik disediakan dalam file.
known_hosts
Jika Anda menentukan file kunci publik yang terpisah, file ini harus menggunakan format yang sama denganknown_hosts
file, yaitu,ip-address key-type public-key
. connectivity.auth
-
Informasi autentikasi untuk koneksi tersebut.
Properti ini hanya berlaku jika
connectivity.protocol
diatur kessh
.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 kepassword
. 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 kepki
. 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 keuart
. connectivity.containerId
-
ID kontainer atau nama kontainer Docker yang sedang diuji.
Properti ini hanya berlaku jika
connectivity.protocol
diatur kedocker
. connectivity.containerUser
-
Tidak wajib. Nama pengguna untuk pengguna di dalam kontainer. Nilai default adalah pengguna yang disediakan di Dockerfile.
Nilai default-nya adalah 22.
Properti ini hanya berlaku jika
connectivity.protocol
diatur kedocker
.
catatan
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 keadaanChoice
. Jika protokol yang salah digunakan, cetak pesan dengan menggunakan keadaanLogMessage
dan beralihlah ke keadaanFail
.Atau, Anda dapat menggunakan kode penanganan kesalahan untuk melaporkan kegagalan pengujian untuk jenis perangkat yang salah.
(Opsional) Konfigurasikan userdata.json
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 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
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 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>
,
"publicKeyPath": "<public-key-path>
",
"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 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
-
Rangkaian perangkat di kolam yang akan diuji. Setidaknya diperlukan satu perangkat.
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
danuart
untuk perangkat fisik, dandocker
untuk kontainer Docker. connectivity.ip
-
Alamat IP perangkat yang sedang diuji.
Properti ini hanya berlaku jika
connectivity.protocol
diatur kessh
. connectivity.port
-
Tidak wajib. Nomor port yang digunakan untuk SSH koneksi.
Nilai default-nya adalah 22.
Properti ini hanya berlaku jika
connectivity.protocol
diatur kessh
. connectivity.publicKeyPath
-
Tidak wajib. Jalur lengkap ke kunci publik digunakan untuk mengautentikasi koneksi ke perangkat yang sedang diuji. Saat Anda menentukan
publicKeyPath
, IDT memvalidasi kunci publik perangkat saat membuat SSH sambungan ke perangkat yang sedang diuji. Jika nilai ini tidak ditentukan, IDT buat SSH sambungan, tetapi tidak memvalidasi kunci publik perangkat.Kami sangat menyarankan Anda menentukan jalur ke kunci publik, dan Anda menggunakan metode aman untuk mengambil kunci publik ini. Untuk SSH klien berbasis baris perintah standar, kunci publik disediakan dalam file.
known_hosts
Jika Anda menentukan file kunci publik yang terpisah, file ini harus menggunakan format yang sama denganknown_hosts
file, yaitu,ip-address key-type public-key
. connectivity.auth
-
Informasi autentikasi untuk koneksi tersebut.
Properti ini hanya berlaku jika
connectivity.protocol
diatur kessh
.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 kepassword
. 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 kepki
. 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 keuart
. connectivity.containerId
-
ID kontainer atau nama kontainer Docker yang sedang diuji.
Properti ini hanya berlaku jika
connectivity.protocol
diatur kedocker
. connectivity.containerUser
-
Tidak wajib. Nama pengguna untuk pengguna di dalam kontainer. Nilai default adalah pengguna yang disediakan di Dockerfile.
Nilai default-nya adalah 22.
Properti ini hanya berlaku jika
connectivity.protocol
diatur kedocker
.
(Opsional) Konfigurasikan config.json
config.json
File berisi informasi konfigurasi untukIDT. Biasanya, pelari uji tidak perlu memodifikasi file ini kecuali untuk memberikan kredensi AWS pengguna mereka untukIDT, dan secara opsional, suatu wilayah. AWS Jika AWS
kredensional dengan izin yang diperlukan disediakan, AWS IoT Device Tester kumpulkan dan kirimkan metrik penggunaan ke. AWS Ini adalah fitur opt-in dan digunakan untuk meningkatkan IDT fungsionalitas. Untuk informasi selengkapnya, lihat Kirim metrik IDT penggunaan.
Pelari uji dapat mengonfigurasi AWS kredensialnya dengan salah satu cara berikut:
-
File kredensil
IDTmenggunakan file kredensial yang sama dengan file. AWS CLI Untuk informasi selengkapnya, lihat File konfigurasi dan kredensial.
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 didefinisikan selama SSH sesi tidak tersedia setelah sesi ditutup. IDTdapat menggunakan variabel
AWS_ACCESS_KEY_ID
danAWS_SECRET_ACCESS_KEY
lingkungan untuk menyimpan AWS kredensionalUntuk 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 kredensialnyaIDT, 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 <device-tester-extract-location>
.
log.location
-
Jalur ke folder log di
<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
-
Jalur ke folder yang akan berisi hasil pengujian setelah IDT menjalankan rangkaian pengujian.
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 ini IDT digunakan untuk mengambil AWS kredensional. Nilai yang didukung adalah
file
untuk mengambil kredensial dari file kredensial, danenvironment
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 kefile
.