Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Konfigurasikan orkestrasi uji IDT
Mulai di IDT v4.5.1, IDT termasuk baruorkestrasi ujikomponen. Orkestrator uji adalah komponen IDT yang mengontrol aliran eksekusi test suite, dan menghasilkan laporan uji setelah IDT selesai menjalankan semua tes. Orkestrator uji menentukan pemilihan tes dan urutan pengujian dijalankan berdasarkan aturan yang ditetapkan pengguna.
Jika rangkaian tes Anda tidak menyertakan orkestrasi pengujian yang ditetapkan pengguna, IDT akan membuat orkestrasi pengujian untuk Anda.
Orkestrasi 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.
Orkestrator tes menggantikan orkestrator tes IDT. Kami sangat menyarankan Anda menggunakan orkestrator tes untuk mengembangkan suite tes Anda alih-alih orkestrator tes IDT. Orkestrator uji menyediakan fitur yang lebih baik berikut:
-
Menggunakan format deklaratif dibandingkan dengan format imperatif bahwa mesin negara IDT menggunakan. Hal ini mengizinkan Anda untukmenentukantes mana yang ingin Anda jalankan danketikaAnda ingin menjalankan mereka.
-
Mengelola penanganan kelompok tertentu, pembuatan laporan, penanganan kesalahan, dan pelacakan hasilsehingga Anda tidak diperlukanuntuk mengelola tindakan ini secara manual.
-
Menggunakan format YAML, yang mendukung komentar secara default.
-
Membutuhkan80 persenruang disk kurang dari orkestrator tes untuk menentukan alur kerja yang sama.
-
Menambahkan validasi pra-tes untuk memverifikasi bahwa definisi alur kerja Anda tidak mengandung ID pengujian yang salah atau dependensi melingkar.
Format orkestrator uji
Anda dapat menggunakan templat berikut untuk mengonfigurasi file
Anda: <custom-test-suite-folder>
/suite/test_orchestrator.yaml
Aliases:
string
:context-expression
ConditionalTests: - Condition:context-expression
Tests: -test-descriptor
Order: - -group-descriptor
-group-descriptor
Features: - Name:feature-name
Value:support-description
Condition:context-expression
Tests: -test-descriptor
OneOfTests: -test-descriptor
IsRequired:boolean
Semua kolom yang berisi nilai wajib diisi seperti yang dijelaskan di sini:
Aliases
-
Tidak wajib. String yang ditentukan pengguna yang memetakan ekspresi konteks. Alias memungkinkan Anda untuk menghasilkan nama ramahmengidentifikasi ekspresi konteks dalam konfigurasi orkestrator pengujian Anda. Hal ini sangat berguna jika Anda membuat ekspresi konteks kompleks atau ekspresi yang Anda gunakan di beberapa tempat.
Anda dapat menggunakan ekspresi konteks untuk menyimpan kueri konteks yang memungkinkan Anda mengakses data dari konfigurasi IDT lainnya. Untuk informasi selengkapnya, lihat Akses data dalam konteks.
contoh Contoh
Aliases: FizzChosen: "'{{$pool.features[?(@.name == 'Fizz')].value[0]}}' == 'yes'" BuzzChosen: "'{{$pool.features[?(@.name == 'Buzz')].value[0]}}' == 'yes'" FizzBuzzChosen: "'{{$aliases.FizzChosen}}' && '{{$aliases.BuzzChosen}}'"
ConditionalTests
-
Tidak wajib. Daftar kondisi, dan kasus uji yang sesuai yang dijalankan ketika setiap kondisi puas. Setiap kondisi dapat memiliki beberapa kasus uji; Namun, Anda dapat menetapkan kasus uji tertentu untuk hanya satu kondisi.
Secara default, IDT menjalankan setiap kasus uji yang tidak ditetapkan ke kondisi dalam daftar ini. Jika Anda tidak menentukan bagian ini, IDT akan menjalankan semua grup pengujian.
Setiap item dalam
ConditionalTests
mencakup parameter-parameter berikut:Condition
-
Ekspresi konteks yang mengevaluasi keBooleannilai. Jika nilai yang dievaluasi benar, IDT menjalankan kasus uji yang ditentukan dalam
Tests
parameter. Tests
-
Daftar deskriptor tes.
Setiap deskriptor pengujian menggunakan ID grup uji dan satu atau beberapa ID kasus uji untuk mengidentifikasi pengujian individual yang dijalankan dari kelompok uji tertentu. Deskriptor pengujian menggunakan format berikut:
GroupId:
group-id
CaseIds: [test-id
,test-id
] # optional
contoh Contoh
Contoh berikut menggunakan ekspresi konteks generik yang dapat Anda definisikan sebagai
Aliases
.ConditionalTests: - Condition: "{{$aliases.Condition1}}" Tests: - GroupId: A - GroupId: B - Condition: "{{$aliases.Condition2}}" Tests: - GroupId: D - Condition: "{{$aliases.Condition1}} || {{$aliases.Condition2}}" Tests: - GroupId: C
Berdasarkan kondisi yang ditetapkan, IDT memilih kelompok uji sebagai berikut:
-
Jika
Condition1
benar, IDT menjalankan tes pada kelompok uji A, B, dan C. -
Jika
Condition2
benar, IDT menjalankan tes pada kelompok uji C dan D.
Order
-
Tidak wajib. Urutan untuk menjalankan tes. Anda menentukan urutan tes di tingkat kelompok uji. Jika Anda tidak menentukan bagian ini, IDT akan menjalankan semua grup pengujian yang berlaku dalam urutan acak. Nilai dari
Order
adalah daftar daftar deskriptor kelompok. Setiap kelompok uji yang tidak Anda cantumkanOrder
, dapat dijalankan secara parallel dengan kelompok uji lainnya yang terdaftar.Setiap daftar deskriptor grup berisi salah satu deskriptor grup lainnya, dan mengidentifikasi urutan untuk menjalankan grup yang ditentukan dalam setiap deskriptor. Anda dapat menggunakan format berikut untuk menentukan deskriptor grup individual:
-
—ID grup dari grup uji yang ada.group-id
-
[
—Daftar kelompok uji yang dapat dijalankan dalam urutan apapun relatif terhadap satu sama lain.group-id
,group-id
] -
"*"
Wildcard. Ini setara dengan daftar semua kelompok uji yang belum ditentukan dalam daftar deskriptor grup saat ini.
Nilai untuk
Order
juga harus memenuhi persyaratan berikut:-
ID grup uji yang Anda tetapkan dalam deskriptor grup harus ada di rangkaian pengujian Anda.
-
Setiap daftar deskriptor grup harus menyertakan setidaknya satu grup uji.
-
Setiap daftar deskriptor grup harus berisi ID grup unik. Anda tidak dapat mengulangi ID grup uji dalam deskriptor grup individual.
-
Daftar deskriptor grup dapat memiliki paling banyak satu deskriptor wildcard. Deskriptor grup wildcard harus menjadi item pertama atau terakhir dalam daftar.
contoh Contoh
Untuk test suite yang berisi kelompok tes A, B, C, D, dan E, daftar berikut contoh menunjukkan cara yang berbeda untuk menentukan bahwa IDT pertama harus menjalankan tes kelompok A, kemudian menjalankan tes kelompok B, dan kemudian menjalankan tes kelompok C, D, dan E dalam urutan apapun.
-
Order: - - A - B - [C, D, E]
-
Order: - - A - B - "*"
-
Order: - - A - B - - B - C - - B - D - - B - E
-
Features
-
Tidak wajib. Daftar fitur produk yang Anda ingin IDT untuk menambahkan ke
awsiotdevicetester_report.xml
berkas. Jika Anda tidak menentukan bagian ini, IDT tidak akan menambahkan fitur produk apa pun ke laporan.Fitur produk adalah informasi yang ditetapkan pengguna tentang kriteria spesifik yang mungkin dipenuhi oleh perangkat. Misalnya, fitur produk MQTT dapat menetapkan bahwa perangkat akan menerbitkan pesan MQTT dengan benar. Masuk
awsiotdevicetester_report.xml
, fitur produk ditetapkan sebagaisupported
,not-supported
, atau nilai yang ditetapkan pengguna kustom, berdasarkan apakah tes yang ditentukan berlalu.Setiap item dalam
Features
terdiri dari parameter-parameter berikut:Name
-
Nama fitur.
Value
-
Tidak wajib. Nilai kustom yang ingin Anda gunakan dalam laporan, dan bukan
supported
. Jika nilai ini tidak ditentukan, IDT kemudian berdasarkan menetapkan nilai fitur untuksupported
ataunot-supported
berdasarkan hasil pengujian. Jika Anda menguji fitur yang sama dengan kondisi yang berbeda, Anda dapat menggunakan nilai kustom untuk setiap instance fitur tersebut diFeatures
daftar, dan IDT menggabungkan nilai fitur untuk kondisi yang didukung. Untuk informasi selengkapnya, lihat Condition
-
Ekspresi konteks yang mengevaluasi keBooleannilai. Jika nilai yang dievaluasi benar, IDT menambahkan fitur ke laporan pengujian setelah selesai menjalankan test suite. Jika nilai yang dievaluasi adalah palsu, tes tidak termasuk dalam laporan.
Tests
-
Tidak wajib. Daftar deskriptor tes. Semua tes yang ditentukan dalam daftar ini harus lulus pada fitur yang akan didukung.
Setiap deskriptor pengujian dalam daftar ini menggunakan ID grup uji dan satu atau beberapa ID kasus uji untuk mengidentifikasi pengujian individual yang dijalankan dari kelompok uji tertentu. Deskriptor pengujian menggunakan format berikut:
GroupId:
group-id
CaseIds: [test-id
,test-id
] # optionalAnda harus menentukan
Tests
atauOneOfTests
untuk setiap fitur diFeatures
daftar. OneOfTests
-
Tidak wajib. Daftar deskriptor tes. Setidaknya satu tes yang ditentukan dalam daftar ini harus lulus pada fitur yang akan didukung.
Setiap deskriptor pengujian dalam daftar ini menggunakan ID grup uji dan satu atau beberapa ID kasus uji untuk mengidentifikasi pengujian individual yang dijalankan dari kelompok uji tertentu. Deskriptor pengujian menggunakan format berikut:
GroupId:
group-id
CaseIds: [test-id
,test-id
] # optionalAnda harus menentukan
Tests
atauOneOfTests
untuk setiap fitur diFeatures
daftar. IsRequired
-
Nilai boolean yang mendefinisikan apakah fitur diperlukan dalam laporan pengujian. Nilai default-nya adalah
false
.
Konteks orkestrasi uji
Konteks pengujian adalah dokumen JSON baca-saja yang berisi data yang tersedia untuk orkestrasi uji selama eksekusi. Konteks orkestrasi uji hanya dapat diakses dari orkestrasi uji, dan berisi informasi yang menentukan aliran uji. Misalnya, Anda dapat menggunakan informasi yang dikonfigurasi oleh test runner di file userdata.json
untuk menentukan apakah pengujian tertentu wajib dijalankan.
Konteks orkestrasi pengujian menggunakan format berikut:
{ "pool": {
<device-json-pool-element>
}, "userData": {<userdata-json-content>
}, "config": {<config-json-content>
} }
pool
-
Informasi tentang kolam perangkat yang dipilih untuk uji coba. Untuk kolam perangkat yang dipilih, informasi ini diambil dari elemen rangkaian perangkat tingkat atas yang sesuai yang ditentukan dalam file
device.json
. userData
-
Informasi di file
userdata.json
. config
-
Informasi di file
config.json
.
Anda dapat melakukan kueri atas konteks tersebut dengan menggunakan notasi JSONPath. Sintaks untuk kueri JSONPath dalam definisi keadaan adalah {{
. Ketika Anda mengakses data dari konteks pengujian, pastikan bahwa setiap nilai dievaluasi pada string, angka, atauBoolean.query
}}
Untuk informasi lebih lanjut tentang peggunaan notasi JSONPath untuk mengakses data dari konteks, lihat Gunakan konteks IDT.