Mengonfigurasi pengujian beban di YAML
Pelajari cara mengonfigurasi pengujian beban Anda di Azure Load Testing dengan menggunakan YAML. Anda menggunakan file YAML konfigurasi pengujian untuk membuat dan menjalankan pengujian beban dari alur kerja integrasi berkelanjutan dan pengiriman berkelanjutan (CI/CD).
Sintaks YAML uji beban
Konfigurasi uji beban menggunakan kunci berikut:
Kunci | Jenis | Wajib | Nilai default | Deskripsi |
---|---|---|---|---|
version |
string | Y | Memuat versi spesifikasi pengujian. Satu-satunya nilai yang didukung adalah v0.1 . |
|
testId |
string | Y | Pengidentifikasi unik pengujian beban. Nilai harus antara 2 dan 50 karakter ([a-z0-9_-]). Untuk pengujian yang ada, Anda bisa mendapatkan testId dari halaman detail pengujian di portal Azure. |
|
testName |
string | N | Ditolak. Pengidentifikasi unik pengujian beban. Pengaturan ini digantikan oleh testId . Anda masih dapat menjalankan pengujian yang ada dengan testName bidang . |
|
displayName |
string | N | Tampilkan nama pengujian. Nilai ini ditampilkan dalam daftar pengujian di portal Azure. Jika tidak disediakan, testId digunakan sebagai nama tampilan. |
|
description |
string | N | Deskripsi singkat tes. Nilai memiliki panjang maksimum 100 karakter. | |
testType |
string | Y | Jenis pengujian. Nilai yang mungkin:
|
|
testPlan |
string | Y | Referensi ke file paket pengujian.
|
|
engineInstances |
Integer | Y | Jumlah instans mesin uji paralel untuk menjalankan rencana pengujian. Pelajari selengkapnya tentang mengonfigurasi beban skala tinggi. | |
configurationFiles |
array string | N | Daftar file eksternal, yang diperlukan oleh skrip pengujian. Misalnya, file data CSV, gambar, atau file data lainnya. Azure Load Testing mengunggah semua file di folder yang sama dengan skrip pengujian. Dalam skrip JMeter, hanya lihat file eksternal menggunakan nama file, dan hapus informasi jalur file apa pun. |
|
failureCriteria |
object | N | Daftar kriteria kegagalan pengujian beban. Lihat failureCriteria untuk detail selengkapnya. | |
autoStop |
string atau objek | N | Secara otomatis menghentikan pengujian beban ketika persentase kesalahan melebihi nilai. Nilai yang mungkin: - disable : jangan hentikan uji beban secara otomatis.- objek: lihat konfigurasi autostop untuk detail selengkapnya. |
|
properties |
object | N | Referensi file properti pengguna JMeter. Lihat properti untuk detail selengkapnya. | |
zipArtifacts |
array string | N | Menentukan daftar file artefak zip. Untuk file selain skrip JMeter dan properti pengguna, jika ukuran file melebihi 50 MB, kompres ke dalam file ZIP. Pastikan bahwa file ZIP tetap berukuran di bawah 50 MB. Hanya 5 artefak ZIP yang diizinkan dengan maksimum 1000 file di masing-masing file dan ukuran yang tidak dikompresi 1 GB. Hanya berlaku ketika testType: JMX . |
|
splitAllCSVs |
Boolean | N | Salah | Pisahkan file CSV input secara merata di semua instans mesin pengujian. Untuk informasi selengkapnya, lihat Membaca file CSV dalam pengujian beban. |
secrets |
object | N | Daftar rahasia yang direferensikan skrip Apache JMeter. Lihat rahasia untuk detail selengkapnya. | |
env |
object | N | Daftar variabel lingkungan yang dirujuk oleh skrip Apache JMeter. Lihat variabel lingkungan untuk detail selengkapnya. | |
certificates |
object | N | Daftar sertifikat klien untuk mengautentikasi dengan titik akhir aplikasi dalam skrip JMeter. Lihat sertifikat untuk detail selengkapnya. | |
keyVaultReferenceIdentity |
string | N | ID sumber daya identitas terkelola yang ditetapkan pengguna untuk mengakses rahasia dari Azure Key Vault Anda. Jika Anda menggunakan identitas yang dikelola sistem, informasi ini tidak diperlukan. Pastikan untuk memberikan akses identitas yang ditetapkan pengguna ini ke brankas kunci Azure Anda. Pelajari selengkapnya tentang identitas terkelola di Azure Load Testing. | |
subnetId |
string | N | ID sumber daya subnet jaringan virtual untuk menguji titik akhir yang dihosting secara privat. Subnet ini menghosting VM mesin uji yang disuntikkan. Untuk informasi selengkapnya, lihat cara memuat titik akhir yang dihosting secara privat. | |
publicIPDisabled |
Boolean | N | Nonaktifkan penyebaran alamat IP publik, load balancer, dan grup keamanan jaringan saat menguji titik akhir privat. Untuk informasi selengkapnya, lihat cara memuat titik akhir yang dihosting secara privat. | |
regionalLoadTestConfig |
object | N | Distribusikan beban di seluruh wilayah untuk mensimulasikan lalu lintas pengguna dari beberapa wilayah. Untuk informasi selengkapnya, Lihat konfigurasi pengujian beban regional untuk detail selengkapnya. |
Memuat sampel konfigurasi pengujian
Cuplikan YAML berikut berisi contoh konfigurasi pengujian beban.
version: v0.1
testId: SampleTest
displayName: Sample Test
description: Load test website home page
testPlan: SampleTest.jmx
testType: JMX
engineInstances: 1
subnetId: /subscriptions/abcdef01-2345-6789-0abc-def012345678/resourceGroups/sample-rg/providers/Microsoft.Network/virtualNetworks/load-testing-vnet/subnets/load-testing
configurationFiles:
- 'sampledata.csv'
zipArtifacts:
- bigdata.zip
splitAllCSVs: True
failureCriteria:
- avg(response_time_ms) > 300
- percentage(error) > 50
- GetCustomerDetails: avg(latency) >200
autoStop:
errorPercentage: 80
timeWindow: 60
secrets:
- name: my-secret
value: https://akv-contoso.vault.azure.net/secrets/MySecret/abc1234567890def12345
keyVaultReferenceIdentity: /subscriptions/abcdef01-2345-6789-0abc-def012345678/resourceGroups/sample-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/sample-identity
failureCriteria
konfigurasi
Uji kriteria gagal memungkinkan Anda menentukan kondisi untuk menentukan apakah eksekusi pengujian beban berhasil atau tidak. Jika satu atau beberapa kriteria gagal terpenuhi, pengujian akan mendapatkan hasil pengujian yang gagal. Pelajari selengkapnya tentang menggunakan kriteria gagal uji beban.
Anda dapat menentukan kriteria gagal yang berlaku untuk seluruh pengujian beban, atau yang berlaku untuk permintaan tertentu. Kriteria gagal memiliki struktur berikut:
- Kriteria pengujian pada tingkat pengujian beban:
Aggregate_function (client_metric) condition threshold
. - Kriteria pengujian diterapkan ke permintaan JMeter tertentu:
Request: Aggregate_function (client_metric) condition threshold
.
Metrik klien yang didukung
Azure Load Testing mendukung metrik klien berikut:
Metric | Fungsi agregat | Ambang | Kondisi | Deskripsi |
---|---|---|---|---|
response_time_ms |
avg (rata-rata)min (minimum)max (maksimum)pxx (persentil), xx bisa 50, 75, 90, 95, 96, 97, 98, 99, 999 dan 9999 |
Nilai bilangan bulat, mewakili jumlah milidetik (md). | > (lebih besar)< (lebih kecil) |
Waktu respons atau waktu yang berlalu, dalam milidetik. Pelajari selengkapnya tentang waktu yang berlalu dalam dokumentasi Apache JMeter. |
latency |
avg (rata-rata)min (minimum)max (maksimum)pxx (persentil), xx bisa 50, 90, 95, 99 |
Nilai bilangan bulat, mewakili jumlah milidetik (md). | > (lebih besar)< (lebih kecil) |
Latensi, dalam milidetik. Pelajari selengkapnya tentang latensi dalam dokumentasi Apache JMeter. |
error |
percentage |
Nilai numerik dalam rentang 0-100, mewakili persentase. | > (lebih besar) |
Persentase permintaan yang gagal. |
requests_per_sec |
avg (rata-rata) |
Nilai numerik dengan hingga dua tempat desimal. | > (lebih besar dari) < (lebih kecil) |
Jumlah permintaan per detik. |
requests |
count |
Nilai bilangan bulat. | > (lebih besar dari) < (lebih kecil) |
Jumlah total permintaan. |
Sampel konfigurasi kriteria gagal
Cuplikan kode berikut menunjukkan konfigurasi uji beban, yang memiliki tiga kriteria kegagalan pengujian beban.
version: v0.1
testId: SampleTest
displayName: Sample Test
description: Load test website home page
testPlan: SampleTest.jmx
testType: JMX
engineInstances: 1
failureCriteria:
- avg(response_time_ms) > 300
- percentage(error) > 50
- GetCustomerDetails: avg(latency) >200
autoStop
konfigurasi
Fungsionalitas autostop uji beban memungkinkan Anda menghentikan pengujian beban secara otomatis ketika persentase kesalahan melebihi ambang batas tertentu selama jendela waktu tertentu. Pelajari selengkapnya tentang fungsionalitas autostop uji beban.
Kunci | Jenis | Nilai default | Deskripsi |
---|---|---|---|
errorPercentage |
Integer | 90 | Ambang batas untuk persentase kesalahan, selama timeWindow . Jika persentase kesalahan melebihi persentase ini selama jendela waktu tertentu, uji coba akan berhenti secara otomatis. |
timeWindow |
Integer | 60 | Jendela waktu dalam detik untuk menghitung errorPercentage . |
Sampel konfigurasi autostop
Cuplikan kode berikut menunjukkan konfigurasi uji beban, yang memiliki tiga kriteria kegagalan pengujian beban.
version: v0.1
testId: SampleTest
displayName: Sample Test
description: Load test website home page
testPlan: SampleTest.jmx
testType: JMX
engineInstances: 1
autoStop:
errorPercentage: 80
timeWindow: 60
properties
konfigurasi
Anda dapat menentukan file properti pengguna JMeter untuk pengujian beban Anda. File properti pengguna diunggah bersama paket pengujian dan file lainnya. Pelajari selengkapnya tentang menggunakan properti pengguna JMeter di Azure Load Testing.
Kunci | Jenis | Nilai default | Deskripsi |
---|---|---|---|
userPropertyFile |
string | File yang akan digunakan sebagai file properti pengguna Apache JMeter. File diunggah ke sumber daya Azure Load Testing bersama skrip pengujian JMeter dan file konfigurasi lainnya. Jika file berada dalam subfolder di komputer lokal Anda, gunakan jalur yang relatif terhadap lokasi skrip pengujian. |
Sampel konfigurasi file properti pengguna
Cuplikan kode berikut menunjukkan konfigurasi uji beban, yang menentukan file properti pengguna.
version: v0.1
testId: SampleTest
displayName: Sample Test
description: Load test website home page
testPlan: SampleTest.jmx
testType: JMX
engineInstances: 1
properties:
userPropertyFile: 'user.properties'
secrets
konfigurasi
Anda dapat menyimpan nilai rahasia di Azure Key Vault dan mereferensikannya dalam paket pengujian Anda. Pelajari selengkapnya tentang menggunakan rahasia dengan Azure Load Testing.
Kunci | Jenis | Nilai default | Deskripsi |
---|---|---|---|
name |
string | Nama rahasia. Nama ini harus cocok dengan nama rahasia yang Anda gunakan dalam permintaan rencana pengujian. | |
value |
string | URI (pengidentifikasi rahasia) untuk rahasia Azure Key Vault. |
Sampel konfigurasi rahasia
Cuplikan kode berikut menunjukkan konfigurasi pengujian beban, yang mereferensikan rahasia my-secret
di Azure Key Vault.
version: v0.1
testId: SampleTest
displayName: Sample Test
description: Load test website home page
testPlan: SampleTest.jmx
testType: JMX
engineInstances: 1
secrets:
- name: my-secret
value: https://akv-contoso.vault.azure.net/secrets/MySecret/abc1234567890def12345
env
konfigurasi
Anda dapat menentukan variabel lingkungan dan mereferensikannya dalam rencana pengujian Anda. Pelajari selengkapnya tentang menggunakan variabel lingkungan dengan Azure Load Testing.
Kunci | Jenis | Nilai default | Deskripsi |
---|---|---|---|
name |
string | Nama variabel lingkungan. Nama ini harus cocok dengan nama variabel yang Anda gunakan dalam permintaan rencana pengujian. | |
value |
string | Nilai variabel lingkungan. |
Sampel konfigurasi variabel lingkungan
Cuplikan kode berikut menunjukkan konfigurasi pengujian beban, yang menentukan variabel my-variable
dan nilai my-value
lingkungan .
version: v0.1
testId: SampleTest
displayName: Sample Test
description: Load test website home page
testPlan: SampleTest.jmx
testType: JMX
engineInstances: 1
env:
- name: my-variable
value: my-value
certificates
konfigurasi
Anda dapat meneruskan sertifikat klien ke uji beban Anda. Sertifikat disimpan di Azure Key Vault. Pelajari selengkapnya tentang menggunakan sertifikat klien dengan Azure Load Testing.
Kunci | Jenis | Nilai default | Deskripsi |
---|---|---|---|
name |
string | Nama sertifikat. | |
value |
string | URI (pengidentifikasi rahasia) untuk sertifikat di Azure Key Vault. |
Sampel konfigurasi sertifikat
Cuplikan kode berikut menunjukkan konfigurasi pengujian beban, yang mereferensikan sertifikat klien di Azure Key Vault.
version: v0.1
testId: SampleTest
displayName: Sample Test
description: Load test website home page
testPlan: SampleTest.jmx
testType: JMX
engineInstances: 1
certificates:
- name: my-certificate
value: https://akv-contoso.vault.azure.net/certificates/MyCertificate/abc1234567890def12345
Meminta file JSON
Jika Anda menggunakan pengujian berbasis URL, Anda dapat menentukan permintaan HTTP dalam file JSON alih-alih menggunakan skrip pengujian JMeter. Pastikan untuk mengatur testType
ke URL
dalam file YAML konfigurasi pengujian dan mereferensikan file JSON permintaan.
Permintaan HTTP
File JSON permintaan menggunakan properti berikut untuk menentukan permintaan dalam requests
properti:
Properti | Tipe | Deskripsi |
---|---|---|
requestName |
string | Nama permintaan unik. Anda dapat mereferensikan nama permintaan saat mengonfigurasi kriteria kegagalan pengujian. |
responseVariables |
array | Daftar variabel respons. Gunakan variabel respons untuk mengekstrak nilai dari permintaan dan mereferensikannya dalam permintaan berikutnya. Pelajari selengkapnya tentang variabel respons. |
responseVariables.extractorType |
string | Mekanisme untuk mengekstrak nilai dari output respons. Nilai yang didukung adalah XPathExtractor , JSONExtractor , dan RegularExpression . |
responseVariables.expression |
string | Ekspresi untuk mengambil output respons. Ekspresi tergantung pada nilai jenis ekstraktor. |
responseVariables.variableName |
string | Nama variabel respons unik. Anda dapat mereferensikan variabel ini dalam permintaan berikutnya dengan menggunakan sintaks.{$variable-name} |
queryParameters |
array | Daftar parameter string kueri untuk diteruskan ke titik akhir. |
queryParameters.key |
string | Nama parameter string kueri. |
queryParameters.value |
string | Nilai parameter string kueri. |
requestType |
string | Tipe permintaan. Nilai yang didukung adalah: URL atau CURL . |
endpoint |
string | URL titik akhir aplikasi untuk diuji. |
headers |
array | Daftar header HTTP yang akan diteruskan ke titik akhir aplikasi. Tentukan pasangan kunci-nilai untuk setiap header. |
body |
string | Teks isi untuk permintaan HTTP. Anda dapat menggunakan requestBodyFormat untuk menentukan format konten isi. |
requestBodyFormat |
string | Format konten isi. Nilai yang didukung adalah Text , JSON , JavaScript , HTML , dan XML . |
method |
string | Metode HTTP untuk memanggil titik akhir. Nilai yang didukung adalah: GET , , PUT POST , DELETE , PATCH , HEAD , dan OPTIONS . |
curlCommand |
string | perintah cURL untuk dijalankan. Mengharuskan requestType bahwa adalah CURL . |
Cuplikan JSON berikut berisi contoh permintaan file JSON:
{
"version": "1.0",
"scenarios": {
"requestGroup1": {
"requests": [
{
"requestName": "add",
"responseVariables": [],
"queryParameters": [
{
"key": "param1",
"value": "value1"
}
],
"requestType": "URL",
"endpoint": "https://www.contoso.com/orders",
"headers": {
"api-token": "my-token"
},
"body": "{\r\n \"customer\": \"Contoso\",\r\n \"items\": {\r\n\t \"product_id\": 321,\r\n\t \"count\": 50,\r\n\t \"amount\": 245.95\r\n }\r\n}",
"method": "POST",
"requestBodyFormat": "JSON"
},
{
"requestName": "get",
"responseVariables": [],
"requestType": "CURL",
"curlCommand": "curl --request GET 'https://www.contoso.com/orders'"
},
],
"csvDataSetConfigList": []
}
},
"testSetup": [
{
"virtualUsersPerEngine": 1,
"durationInSeconds": 600,
"loadType": "Linear",
"scenario": "requestGroup1",
"rampUpTimeInSeconds": 30
}
]
}
Memuat konfigurasi
File JSON permintaan menggunakan properti berikut untuk menentukan konfigurasi beban dalam testSetup
properti:
Properti | Tipe | Jenis beban | Deskripsi |
---|---|---|---|
loadType |
string | Jenis pola beban. Nilai yang didukung adalah: linear , step , dan spike . |
|
scenario |
string | Referensi ke grup permintaan, yang ditentukan dalam scenarios properti . |
|
virtualUsersPerEngine |
Integer | Semua | Jumlah pengguna virtual per instans mesin uji. |
durationInSeconds |
Integer | Semua | Total durasi pengujian beban dalam hitungan detik. |
rampUpTimeInSeconds |
Integer | Linear, Langkah | Durasi dalam detik untuk meningkatkan hingga jumlah target pengguna virtual. |
rampUpSteps |
Integer | Langkah | Jumlah langkah untuk mencapai jumlah target pengguna virtual. |
spikeMultiplier |
Integer | Lonjakan | Faktor untuk mengalikan jumlah pengguna target selama durasi lonjakan. |
spikeHoldTimeInSeconds |
Integer | Lonjakan | Total durasi dalam detik untuk mempertahankan beban lonjakan. |
Konfigurasi pengujian beban regional
Anda dapat mendistribusikan beban di seluruh wilayah untuk mensimulasikan pola lalu lintas kehidupan nyata dengan lebih baik. Anda dapat menentukan wilayah tempat Anda ingin menghasilkan beban dan jumlah beban yang ingin Anda simulasikan dari setiap wilayah. Anda dapat melakukannya dengan menentukan nama wilayah dan jumlah instans mesin yang Anda inginkan di wilayah tersebut. Pelajari selengkapnya tentang menghasilkan beban dari beberapa wilayah.
Kunci | Jenis | Nilai default | Deskripsi |
---|---|---|---|
region |
string | Nama wilayah Azure. | |
engineInstances |
Integer | Jumlah instans mesin untuk wilayah Azure tersebut. |
Sampel konfigurasi pengujian beban regional
Cuplikan kode berikut menunjukkan konfigurasi uji beban, yang menentukan dua wilayah eastus
Azure dan eastasia
dan jumlah instans mesin untuk setiap wilayah.
displayName: Sample Test
testPlan: sampleScript.jmx
description: 'Load test website home page'
engineInstances: 4
testId: SampleTest
testType: Locust
splitAllCSVs: False
regionalLoadTestConfig:
- region: eastus
engineInstances: 2
- region: eastasia
engineInstances: 2
failureCriteria:
- p90(response_time_ms) > 10000
autoStop:
errorPercentage: 90
timeWindow: 60
Konten terkait
- Pelajari cara membangun pengujian regresi otomatis di alur kerja CI/CD Anda.
- Pelajari cara membuat parameter pengujian beban dengan rahasia dan variabel lingkungan.
- Pelajari cara memuat titik akhir aman pengujian.