YAML'de yük testi yapılandırma
YAML kullanarak Azure Yük Testi'nde yük testinizi yapılandırmayı öğrenin. Sürekli tümleştirme ve sürekli teslim (CI/CD) iş akışınızdan yük testleri oluşturmak ve çalıştırmak için test yapılandırması YAML dosyasını kullanırsınız.
Yük testi YAML söz dizimi
Yük testi yapılandırması aşağıdaki anahtarları kullanır:
Anahtar | Type | Zorunlu | Varsayılan değer | Açıklama |
---|---|---|---|---|
version |
Dize | Y | Yük testi belirtimi sürümü. Desteklenen tek değerdir v0.1 . |
|
testId |
Dize | Y | Yük testinin benzersiz tanımlayıcısı. Değer 2 ile 50 karakter arasında olmalıdır ([a-z0-9_-]). Mevcut bir test için testId azure portalındaki test ayrıntıları sayfasından alabilirsiniz. |
|
testName |
Dize | N | Kullanımdan kaldırıldı. Yük testinin benzersiz tanımlayıcısı. Bu ayar ile testId değiştirilir. Alanıyla mevcut testleri çalıştırmaya testName devam edebilirsiniz. |
|
displayName |
Dize | N | Testin görünen adı. Bu değer, Azure portalındaki test listesinde gösterilir. Sağlanmadıysa, testId görünen ad olarak kullanılır. |
|
description |
Dize | N | Testin kısa açıklaması. Değerin uzunluğu en fazla 100 karakterdir. | |
testType |
Dize | Y | Test türü. Olası değerler:
|
|
testPlan |
Dize | Y | Test planı dosyasına başvuru. |
|
engineInstances |
integer | Y | Test planını çalıştırmak için paralel test altyapısı örneklerinin sayısı. Yüksek ölçekli yük yapılandırma hakkında daha fazla bilgi edinin. | |
configurationFiles |
dize dizisi | N | Test betiği için gerekli olan dış dosyaların listesi. Örneğin, CSV veri dosyaları, görüntüler veya başka bir veri dosyası. Azure Load Testing, test betiğiyle aynı klasördeki tüm dosyaları karşıya yükler. JMeter betiğinde veya Locust betiğinde yalnızca dosya adını kullanarak dış dosyalara başvurun ve dosya yolu bilgilerini kaldırın. |
|
failureCriteria |
nesne | N | Yük testi başarısız ölçütlerinin listesi. Daha fazla bilgi için bkz . failureCriteria . | |
autoStop |
dize veya nesne | N | Hata yüzdesi bir değeri aştığında yük testini otomatik olarak durdurun. Olası değerler: - disable : yük testlerini otomatik olarak durdurmayın.- object: Daha fazla ayrıntı için bkz . otomatik durdurma yapılandırması. |
|
properties |
nesne | N |
|
|
zipArtifacts |
dize dizisi | N | Zip yapıt dosyalarının listesini belirtir. JMeter betikleri ve JMeter tabanlı testler için kullanıcı özellikleri ve Locust tabanlı testler için Locust betiği ve yapılandırma dosyaları dışındaki dosyalar için, dosya boyutu 50 MB'ı aşarsa, bunları zip dosyasına sıkıştırın. ZIP dosyasının boyutunun 50 MB'ın altında kaldığından emin olun. Her birinde en fazla 1000 dosya ve sıkıştırılmamış boyutu 1 GB olan yalnızca 5 ZIP yapıtına izin verilir. Yalnızca ve testType: Locust için testType: JMX geçerlidir. |
|
splitAllCSVs |
boolean | N | False | Giriş CSV dosyalarını tüm test altyapısı örnekleri arasında eşit olarak bölün. Daha fazla bilgi için bkz . Yük testlerinde CSV dosyasını okuma. |
secrets |
nesne | N | Apache JMeter veya Locust betiğinin başvurduğunu gizli dizilerin listesi. Daha fazla ayrıntı için gizli dizilere bakın. | |
env |
nesne | N | Apache JMeter betiğinin veya Locust'un başvurduğunu ortam değişkenlerinin listesi. Daha fazla ayrıntı için ortam değişkenlerine bakın. | |
certificates |
nesne | N | JMeter veya Locust betiğinde uygulama uç noktalarıyla kimlik doğrulaması için istemci sertifikalarının listesi. Daha fazla ayrıntı için bkz . sertifikalar . | |
keyVaultReferenceIdentity |
Dize | N | Azure Key Vault'unuzdan gizli dizilere erişmek için kullanıcı tarafından atanan yönetilen kimliğin kaynak kimliği. Sistem tarafından yönetilen bir kimlik kullanıyorsanız bu bilgiler gerekli değildir. Bu kullanıcı tarafından atanan kimliğe Azure anahtar kasanıza erişim izni verin. Azure Yük Testi'nde yönetilen kimlikler hakkında daha fazla bilgi edinin. | |
subnetId |
Dize | N | Özel olarak barındırılan uç noktaları test için sanal ağ alt ağının kaynak kimliği. Bu alt ağ, eklenen test altyapısı VM'lerini barındırıyor. Daha fazla bilgi için bkz . Test özel olarak barındırılan uç noktaları yükleme. | |
publicIPDisabled |
boolean | N | Özel uç noktayı test ederken genel IP adresi, yük dengeleyici ve ağ güvenlik grubu dağıtımını devre dışı bırakın. Daha fazla bilgi için bkz . Test özel olarak barındırılan uç noktaları yükleme. | |
regionalLoadTestConfig |
nesne | N | Birden çok bölgeden gelen kullanıcı trafiğinin benzetimini yapmak için yükü bölgeler arasında dağıt. Daha fazla bilgi için bkz. Bölgesel yük testi yapılandırması . |
Yük testi yapılandırma örneği
Aşağıdaki YAML kod parçacığı örnek bir yük testi yapılandırması içerir.
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
yapılandırması
Test başarısız ölçütleri, yük testi çalıştırmanın başarılı olup olmadığını belirlemek için koşulları tanımlamanızı sağlar. Bir veya daha fazla başarısız ölçüt karşılanırsa, test başarısız bir test sonucu alır. Yük testi başarısız ölçütlerini kullanma hakkında daha fazla bilgi edinin.
Yük testinin tamamına uygulanan veya belirli bir istek için geçerli olan hata ölçütlerini tanımlayabilirsiniz. Başarısız ölçütler aşağıdaki yapıya sahiptir:
- Yük testi düzeyinde test ölçütleri:
Aggregate_function (client_metric) condition threshold
. - Belirli JMeter isteklerine uygulanan test ölçütleri:
Request: Aggregate_function (client_metric) condition threshold
.
Desteklenen istemci ölçümleri
Azure Load Testing aşağıdaki istemci ölçümlerini destekler:
Metric | Toplama işlevi | Threshold | Koşul | Açıklama |
---|---|---|---|---|
response_time_ms |
avg (ortalama)min (minimum)max (maksimum)pxx (yüzdebirlik), xx 50, 75, 90, 95, 96, 97, 98, 99, 999 ve 9999 olabilir |
Milisaniye (ms) sayısını temsil eden tamsayı değeri. | > (büyüktür)< (küçüktür) |
Yanıt süresi veya geçen süre (milisaniye cinsinden). Geçen süre hakkında daha fazla bilgiyi Apache JMeter belgelerinde bulabilirsiniz. |
latency |
avg (ortalama)min (minimum)max (maksimum)pxx (yüzdebirlik), xx 50, 90, 95, 99 olabilir |
Milisaniye (ms) sayısını temsil eden tamsayı değeri. | > (büyüktür)< (küçüktür) |
Milisaniye cinsinden gecikme süresi. Apache JMeter belgelerinde gecikme süresi hakkında daha fazla bilgi edinin. |
error |
percentage |
Yüzdeyi temsil eden 0-100 aralığındaki sayısal değer. | > (büyüktür) |
Başarısız isteklerin yüzdesi. |
requests_per_sec |
avg (ortalama) |
İki ondalık basameğe kadar olan sayısal değer. | > (büyüktür) < (küçüktür) |
Saniye başına istek sayısı. |
requests |
count |
Tamsayı değeri. | > (büyüktür) < (küçüktür) |
Toplam istek sayısı. |
Başarısız ölçüt yapılandırma örneği
Aşağıdaki kod parçacığında üç yük testi başarısızlık ölçütüne sahip bir yük testi yapılandırması gösterilmektedir.
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
yapılandırması
Yük testi otomatik durdurma işlevi, belirli bir zaman penceresi sırasında hata yüzdesi belirli bir eşiği aştığında yük testini otomatik olarak durdurmanızı sağlar. Yük testi otomatik durdurma işlevi hakkında daha fazla bilgi edinin.
Anahtar | Tür | Default value | Açıklama |
---|---|---|---|
errorPercentage |
integer | 90 | sırasında hata yüzdesi eşiği timeWindow . Herhangi bir zaman penceresinde hata yüzdesi bu yüzdeyi aşarsa, test çalıştırması otomatik olarak durdurulur. |
timeWindow |
integer | 60 | hesaplama errorPercentage için saniye olarak zaman penceresi. |
Otomatik durdurma yapılandırma örneği
Aşağıdaki kod parçacığında üç yük testi başarısızlık ölçütüne sahip bir yük testi yapılandırması gösterilmektedir.
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
yapılandırması
Yük testiniz için bir JMeter kullanıcı özellikleri dosyası belirtebilirsiniz. Kullanıcı özellikleri dosyası, test planı ve diğer dosyalar ile birlikte karşıya yüklenir. Azure Yük Testi'nde JMeter kullanıcı özelliklerini kullanma hakkında daha fazla bilgi edinin.
Anahtar | Tür | Default value | Açıklama |
---|---|---|---|
userPropertyFile |
Dize | Apache JMeter kullanıcı özellikleri dosyası veya Locust yapılandırma dosyası olarak kullanılacak dosya. Locust için.conf, .ini ve .toml uzantılı dosyalar yapılandırma dosyası olarak desteklenir. Dosya, test betiği ve diğer yapılandırma dosyalarının yanı sıra Azure Load Testing kaynağına yüklenir. Dosya yerel makinenizdeki bir alt klasördeyse, test betiğinin konumuna göre bir yol kullanın. |
Kullanıcı özellik dosyası yapılandırma örneği
Aşağıdaki kod parçacığı, kullanıcı özellikleri dosyasını belirten bir yük testi yapılandırması gösterir.
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'
Aşağıdaki kod parçacığı, Locust yapılandırma dosyasını belirten bir yük testi yapılandırması gösterir.
version: v0.1
testId: SampleTest
displayName: Sample Test
description: Load test website home page
testPlan: SampleTest.py
testType: Locust
engineInstances: 1
properties:
userPropertyFile: 'locust.conf'
secrets
yapılandırması
Gizli dizi değerlerini Azure Key Vault'ta depolayabilir ve test planınızda bunlara başvurabilirsiniz. Azure Load Testing ile gizli dizileri kullanma hakkında daha fazla bilgi edinin.
Anahtar | Tür | Default value | Açıklama |
---|---|---|---|
name |
Dize | Gizli dizinin adı. Bu ad, test planı isteklerinde kullandığınız gizli dizi adıyla eşleşmelidir. | |
value |
Dize | Azure Key Vault gizli dizisi için URI (gizli dizi tanımlayıcısı). |
Gizli dizi yapılandırma örneği
Aşağıdaki kod parçacığında, Azure Key Vault'taki bir gizli diziye my-secret
başvuran bir yük testi yapılandırması gösterilmektedir.
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
yapılandırması
Ortam değişkenlerini belirtebilir ve test planınızda bunlara başvurabilirsiniz. Azure Yük Testi ile ortam değişkenlerini kullanma hakkında daha fazla bilgi edinin.
Anahtar | Tür | Default value | Açıklama |
---|---|---|---|
name |
Dize | Ortam değişkeninin adı. Bu ad, test planı isteklerinde kullandığınız değişken adıyla eşleşmelidir. | |
value |
Dize | Ortam değişkeninin değeri. |
Ortam değişkeni yapılandırma örneği
Aşağıdaki kod parçacığı, bir ortam değişkeni my-variable
ve değerini my-value
belirten bir yük testi yapılandırması gösterir.
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
yapılandırması
İstemci sertifikalarını yük testinize geçirebilirsiniz. Sertifika Azure Key Vault'ta depolanır. Azure Yük Testi ile istemci sertifikalarını kullanma hakkında daha fazla bilgi edinin.
Anahtar | Tür | Default value | Açıklama |
---|---|---|---|
name |
Dize | Sertifikanın adı. | |
value |
Dize | Azure Key Vault'taki sertifika için URI (gizli dizi tanımlayıcısı). |
Sertifika yapılandırma örneği
Aşağıdaki kod parçacığı, Azure Key Vault'taki bir istemci sertifikasına başvuran bir yük testi yapılandırmasını gösterir.
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
İstekler JSON dosyası
URL tabanlı bir test kullanıyorsanız, JMeter test betiği kullanmak yerine JSON dosyasında HTTP isteklerini belirtebilirsiniz. test yapılandırması YAML dosyasında öğesini olarak ayarladığınızdan testType
URL
emin olun ve istekler JSON dosyasına başvurun.
HTTP istekleri
requests JSON dosyası, özelliğinde requests
istekleri tanımlamak için aşağıdaki özellikleri kullanır:
Özellik | Türü | Veri Akışı Açıklaması |
---|---|---|
requestName |
Dize | Benzersiz istek adı. Test başarısız ölçütlerini yapılandırırken istek adına başvurabilirsiniz. |
responseVariables |
dizi | Yanıt değişkenlerinin listesi. İstekten bir değer ayıklamak ve sonraki bir istekte buna başvurmak için yanıt değişkenlerini kullanın. Yanıt değişkenleri hakkında daha fazla bilgi edinin. |
responseVariables.extractorType |
Dize | Yanıt çıkışından bir değer ayıklama mekanizması. Desteklenen değerler , JSONExtractor ve RegularExpression değerleridirXPathExtractor . |
responseVariables.expression |
Dize | Yanıt çıkışını almak için ifade. İfade ayıklayıcı türü değerine bağlıdır. |
responseVariables.variableName |
Dize | Benzersiz yanıt değişkeni adı. Söz dizimini kullanarak sonraki bir istekte bu değişkene {$variable-name} başvurabilirsiniz. |
queryParameters |
dizi | Uç noktaya geçirecek sorgu dizesi parametrelerinin listesi. |
queryParameters.key |
Dize | Sorgu dizesi parametre adı. |
queryParameters.value |
Dize | Sorgu dizesi parametre değeri. |
requestType |
Dize | İstek türü. Desteklenen değerler şunlardır: URL veya CURL . |
endpoint |
Dize | Test etmek için uygulama uç noktasının URL'si. |
headers |
dizi | Uygulama uç noktasına geçirecek HTTP üst bilgilerinin listesi. Her üst bilgi için bir anahtar-değer çifti belirtin. |
body |
Dize | HTTP isteği için gövde metni. gövde içeriğinin biçimini belirtmek için öğesini kullanabilirsiniz requestBodyFormat . |
requestBodyFormat |
Dize | Gövde içeriğinin biçimi. Desteklenen değerler şunlardır: Text , JSON , JavaScript , HTML ve XML . |
method |
Dize | Uç noktayı çağırmak için HTTP yöntemi. Desteklenen değerler şunlardır: GET , POST , PUT , DELETE , PATCH , , HEAD ve OPTIONS . |
curlCommand |
Dize | cURL komutunu çalıştırın. öğesinin olması requestType CURL gerekir. |
Aşağıdaki JSON parçacığı bir örnek istek JSON dosyası içerir:
{
"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
}
]
}
Yapılandırmayı yükleme
requests JSON dosyası, özelliğinde testSetup
yük yapılandırmasını tanımlamak için aşağıdaki özellikleri kullanır:
Özellik | Tür | Yükleme türü | Açıklama |
---|---|---|---|
loadType |
Dize | Yük deseni türü. Desteklenen değerler şunlardır: linear , step ve spike . |
|
scenario |
Dize | özelliğinde belirtilen istek grubuna başvuru scenarios . |
|
virtualUsersPerEngine |
integer | Tümü | Test altyapısı örneği başına sanal kullanıcı sayısı. |
durationInSeconds |
integer | Tümü | Yük testinin saniye cinsinden toplam süresi. |
rampUpTimeInSeconds |
integer | Doğrusal, Adım | Hedef sanal kullanıcı sayısına yükselmek için saniye cinsinden süre. |
rampUpSteps |
integer | Adım | Hedef sanal kullanıcı sayısına ulaşma adımlarının sayısı. |
spikeMultiplier |
integer | Başak | Ani artış süresi boyunca hedef kullanıcı sayısını çarpma faktörü. |
spikeHoldTimeInSeconds |
integer | Başak | Ani yükü korumak için saniye cinsinden toplam süre. |
Bölgesel yük testi yapılandırması
Gerçek hayattaki trafik desenlerinin simülasyonunu daha iyi yapmak için yükü bölgeler arasında dağıtabilirsiniz. Yükü oluşturmak istediğiniz bölgeleri ve her bölgeden benzetimini yapmak istediğiniz yük miktarını belirtebilirsiniz. Bölge adını ve bu bölgede istediğiniz altyapı örneklerinin sayısını belirterek bunu yapabilirsiniz. Birden çok bölgeden yük oluşturma hakkında daha fazla bilgi edinin.
Anahtar | Tür | Default value | Açıklama |
---|---|---|---|
region |
Dize | Azure bölgesinin adı. | |
engineInstances |
integer | Bu Azure bölgesi için altyapı örneklerinin sayısı. |
Bölgesel yük testi yapılandırma örneği
Aşağıdaki kod parçacığı, iki Azure bölgesini ve eastasia
her bölge eastus
için altyapı örneği sayısını belirten bir yük testi yapılandırması gösterir.
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
İlgili içerik
- CI/CD iş akışınızda otomatik regresyon testi oluşturmayı öğrenin.
- Gizli diziler ve ortam değişkenleriyle yük testlerini parametreleştirmeyi öğrenin.
- Test güvenli uç noktalarını yüklemeyi öğrenin.