Bagikan melalui


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:
  • URL: Uji beban berbasis URL
  • JMX: Uji beban berbasis JMeter
testPlan string Y Referensi ke file paket pengujian.
  • Jika testType: JMX: jalur relatif ke skrip pengujian JMeter.
  • Jika testType: URL: jalur relatif ke file JSON permintaan.
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-valuelingkungan .

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, , PUTPOST, 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