Terhelésteszt konfigurálása a YAML-ben
Megtudhatja, hogyan konfigurálhatja a terheléstesztet az Azure Load Testingben a YAML használatával. A tesztkonfigurációs YAML-fájllal terhelésteszteket hozhat létre és futtathat a folyamatos integrációs és folyamatos kézbesítési (CI/CD) munkafolyamatból.
YaML-szintaxis terheléstesztelése
A terhelésteszt-konfiguráció a következő kulcsokat használja:
Kulcs | Típus | Kötelező | Default value | Description |
---|---|---|---|---|
version |
sztring | Y | Terhelésteszt specifikáció verziója. Az egyetlen támogatott érték az v0.1 . |
|
testId |
sztring | Y | A terhelési teszt egyedi azonosítója. Az értéknek 2 és 50 karakter közöttinek kell lennie ([a-z0-9_-]). Meglévő teszt esetén az testId Azure Portal teszt részleteinek oldaláról szerezheti be. |
|
testName |
sztring | N | Elavult. A terhelési teszt egyedi azonosítója. Ezt a beállítást a rendszer lecseréli a következőre testId : . A mezővel testName továbbra is futtathat meglévő teszteket. |
|
displayName |
sztring | N | A teszt megjelenítendő neve. Ez az érték az Azure Portal tesztlistájában jelenik meg. Ha nincs megadva, testId a rendszer megjelenítendő névként használja. |
|
description |
sztring | N | A teszt rövid leírása. Az érték legfeljebb 100 karakter hosszúságú lehet. | |
testType |
sztring | Y | Teszt típusa. Lehetséges értékek:
|
|
testPlan |
sztring | Y | Hivatkozás a teszttervfájlra.
|
|
engineInstances |
egész szám | Y | A tesztterv futtatásához használt párhuzamos tesztmotor-példányok száma. További információ a nagy léptékű terhelés konfigurálásáról. | |
configurationFiles |
sztringek tömbje | N | A tesztszkript által megkövetelt külső fájlok listája. Például CSV-adatfájlok, képek vagy bármely más adatfájl. Az Azure Load Testing az összes fájlt ugyanabban a mappában tölti fel, mint a tesztszkript. A JMeter-szkriptben csak a fájlnév használatával hivatkozzon külső fájlokra, és távolítsa el a fájl elérési útját. |
|
failureCriteria |
object | N | A terhelésteszt sikertelenségére vonatkozó feltételek listája. További részletekért tekintse meg a failureCriteria webhelyet . | |
autoStop |
sztring vagy objektum | N | Automatikusan állítsa le a terhelési tesztet, ha a hiba százalékos értéke meghaladja az értéket. Lehetséges értékek: - disable : ne állítsa le automatikusan a terhelési tesztet.- objektum: további részletekért tekintse meg az automatikus konfigurációt . |
|
properties |
object | N | JMeter felhasználói tulajdonságfájl-hivatkozások. További részletekért tekintse meg a tulajdonságokat . | |
zipArtifacts |
sztringek tömbje | N | Megadja a zip-összetevők fájljainak listáját. A JMeter-szkripteken és a felhasználói tulajdonságokon kívüli fájlok esetében, ha a fájl mérete meghaladja az 50 MB-ot, tömörítse őket zip-fájlba. Győződjön meg arról, hogy a ZIP-fájl mérete 50 MB alatt marad. Csak 5 ZIP-összetevő engedélyezett, egyenként legfeljebb 1000 fájllal és 1 GB tömörítetlen mérettel. Csak akkor érvényes, ha testType: JMX . |
|
splitAllCSVs |
Logikai | N | False | A bemeneti CSV-fájlok egyenletes felosztása az összes tesztmotor-példányon. További információ: CSV-fájl olvasása terheléstesztekben. |
secrets |
object | N | Az Apache JMeter-szkript által hivatkozott titkos kódok listája. További részletekért lásd a titkos kulcsokat . | |
env |
object | N | Az Apache JMeter-szkript által hivatkozott környezeti változók listája. További részletekért tekintse meg a környezeti változókat . | |
certificates |
object | N | Az alkalmazásvégpontokkal való hitelesítéshez szükséges ügyféltanúsítványok listája a JMeter-szkriptben. További részletekért tekintse meg a tanúsítványokat . | |
keyVaultReferenceIdentity |
sztring | N | A felhasználó által hozzárendelt felügyelt identitás erőforrás-azonosítója az Azure Key Vault titkos kulcsainak eléréséhez. Rendszer által felügyelt identitás használata esetén nincs szükség erre az információra. Győződjön meg arról, hogy a felhasználó által hozzárendelt identitás hozzáférést biztosít az Azure Key Vaulthoz. További információ a felügyelt identitásokról az Azure Load Testingben. | |
subnetId |
sztring | N | A virtuális hálózati alhálózat erőforrás-azonosítója a privát üzemeltetésű végpontok teszteléséhez. Ez az alhálózat üzemelteti az injektált tesztmotor virtuális gépeit. További információkért tekintse meg a privát üzemeltetésű végpontok tesztelésének betöltését. | |
publicIPDisabled |
Logikai | N | Tiltsa le nyilvános IP-cím, terheléselosztó és hálózati biztonsági csoport üzembe helyezését egy privát végpont tesztelése közben. További információkért tekintse meg a privát üzemeltetésű végpontok tesztelésének betöltését. |
Tesztkonfigurációs minta betöltése
Az alábbi YAML-kódrészlet egy példa terhelésteszt-konfigurációt tartalmaz.
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
Konfigurációs
A sikertelen tesztfeltételek segítségével feltételeket határozhat meg annak megállapításához, hogy egy terheléses teszt sikeres volt-e vagy sem. Ha egy vagy több sikertelen feltétel teljesül, a teszt sikertelen teszteredményt kap. További információ a terhelésteszt sikertelenség feltételeinek használatáról.
Megadhat olyan feladatfeltételeket, amelyek a teljes terhelési tesztre vonatkoznak, vagy amelyek egy adott kérelemre vonatkoznak. A feladatfeltételek struktúrája a következő:
- Tesztelési feltételek a terhelésteszt szintjén:
Aggregate_function (client_metric) condition threshold
. - Adott JMeter-kérelmekre alkalmazott tesztelési feltételek:
Request: Aggregate_function (client_metric) condition threshold
.
Támogatott ügyfélmetrikák
Az Azure Load Testing a következő ügyfélmetrikákat támogatja:
Metric | Összesítő függvény | Küszöbérték | Feltétel | Leírás |
---|---|---|---|---|
response_time_ms |
avg (átlag)min (minimum)max (maximális)pxx (percentilis), xx lehet 50, 90, 95, 99 |
Egész szám, amely az ezredmásodpercek számát (ms) jelöli. | > (nagyobb, mint)< (kisebb, mint) |
Válaszidő vagy eltelt idő ezredmásodpercben. További információ az Eltelt időről az Apache JMeter dokumentációjában. |
latency |
avg (átlag)min (minimum)max (maximális)pxx (percentilis), xx lehet 50, 90, 95, 99 |
Egész szám, amely az ezredmásodpercek számát (ms) jelöli. | > (nagyobb, mint)< (kisebb, mint) |
Késés ezredmásodpercben. További információ a késésről az Apache JMeter dokumentációjában. |
error |
percentage |
Numerikus érték a 0–100 tartományban, százalékértékeket jelölve. | > (nagyobb, mint) |
A sikertelen kérelmek százalékos aránya. |
requests_per_sec |
avg (átlag) |
Legfeljebb két tizedesjegyet tartalmazó numerikus érték. | > (nagyobb, mint) < (kisebb, mint) |
Kérelmek száma másodpercenként. |
requests |
count |
Egész számérték. | > (nagyobb, mint) < (kisebb, mint) |
Kérelmek teljes száma. |
Hibakonfigurációs konfigurációs minta
Az alábbi kódrészlet egy terhelésteszt-konfigurációt mutat be, amely három terheléstesztelési feladatfeltételt is tartalmazza.
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
Konfigurációs
A terhelésteszt automatikus beállítása lehetővé teszi a terhelésteszt automatikus leállítását, ha a hiba százalékos értéke túllép egy adott küszöbértéket egy adott időablakban. További információ az automatikus terhelésteszt funkcióról.
Kulcs | Típus | Default value | Description |
---|---|---|---|
errorPercentage |
egész szám | 90 | A hiba százalékos küszöbértéke a timeWindow . Ha a hiba százalékos értéke meghaladja ezt a százalékértéket egy adott időszak alatt, a teszt automatikusan lefut. |
timeWindow |
egész szám | 60 | A számításának időablaka errorPercentage másodpercben. |
Automatikus konfigurációs minta
Az alábbi kódrészlet egy terhelésteszt-konfigurációt mutat be, amely három terheléstesztelési feladatfeltételt is tartalmazza.
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
Konfigurációs
A terhelési teszthez megadhat egy JMeter felhasználói tulajdonságokat tartalmazó fájlt. A rendszer feltölti a felhasználói tulajdonságokat tartalmazó fájlt a tesztterv és más fájlok mellett. További információ a JMeter felhasználói tulajdonságainak használatáról az Azure Load Testingben.
Kulcs | Típus | Default value | Description |
---|---|---|---|
userPropertyFile |
sztring | Apache JMeter-felhasználótulajdonság-fájlként használandó fájl. A rendszer feltölti a fájlt az Azure Load Testing-erőforrásba a JMeter-tesztszkript és más konfigurációs fájlok mellett. Ha a fájl a helyi gépen található almappában található, használjon egy elérési utat a tesztszkript helyéhez képest. |
Felhasználói tulajdonság fájlkonfigurációs mintája
Az alábbi kódrészlet egy terhelésteszt-konfigurációt mutat be, amely egy felhasználói tulajdonságfájlt határoz meg.
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
Konfigurációs
Titkos értékeket tárolhat az Azure Key Vaultban, és hivatkozhat rájuk a tesztcsomagban. További információ a titkos kódok Azure Load Testing használatával való használatáról.
Kulcs | Típus | Default value | Description |
---|---|---|---|
name |
sztring | A titkos kód neve. Ennek a névnek meg kell egyeznie a tesztterv-kérelmekben használt titkos névvel. | |
value |
sztring | URI (titkos azonosító) az Azure Key Vault titkos kulcsához. |
Titkos kulcsok konfigurációs mintája
Az alábbi kódrészlet egy terhelésteszt-konfigurációt mutat be, amely egy titkos kódra my-secret
hivatkozik az Azure Key Vaultban.
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
Konfigurációs
Megadhatja a környezeti változókat, és hivatkozhat rájuk a teszttervben. További információ a környezeti változók Azure Load Testing használatával való használatáról.
Kulcs | Típus | Default value | Description |
---|---|---|---|
name |
sztring | A környezeti változó neve. Ennek a névnek meg kell egyeznie a tesztterv-kérelmekben használt változó nevével. | |
value |
sztring | A környezeti változó értéke. |
Környezeti változó konfigurációs mintája
Az alábbi kódrészlet egy terhelésteszt-konfigurációt mutat be, amely környezeti változót my-variable
és értéket my-value
határoz meg.
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
Konfigurációs
Az ügyféltanúsítványokat átadhatja a terheléses tesztnek. A tanúsítvány tárolása az Azure Key Vaultban történik. További információ az ügyféltanúsítványok Azure Load Testing használatával való használatáról.
Kulcs | Típus | Default value | Description |
---|---|---|---|
name |
sztring | A tanúsítvány neve. | |
value |
sztring | URI (titkos azonosító) a tanúsítványhoz az Azure Key Vaultban. |
Tanúsítványkonfigurációs minta
Az alábbi kódrészlet egy terhelésteszt-konfigurációt mutat be, amely az Azure Key Vaultban található ügyféltanúsítványra hivatkozik.
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
JSON-fájl kérése
Ha URL-alapú tesztet használ, A JMeter-tesztszkript használata helyett megadhatja a HTTP-kéréseket egy JSON-fájlban. Ügyeljen arra, hogy a testType
tesztkonfigurációs YAML-fájlban állítsa be a beállítást URL
, és hivatkozzon a kérések JSON-fájlra.
HTTP-kérések
A requests JSON-fájl a következő tulajdonságokat használja a kérelem meghatározásához a requests
tulajdonságban:
Tulajdonság | Type | Description |
---|---|---|
requestName |
sztring | Egyedi kérés neve. A sikertelen tesztfeltételek konfigurálásakor hivatkozhat a kérelem nevére. |
responseVariables |
array | Válaszváltozók listája. Válaszváltozókkal kinyerhet egy értéket a kérelemből, és hivatkozhat rá egy későbbi kérelemben. További információ a válaszváltozókról. |
responseVariables.extractorType |
sztring | Egy érték kinyerésére szolgáló mechanizmus a válaszkimenetből. A támogatott értékek a következők XPathExtractor : , JSONExtractor és RegularExpression . |
responseVariables.expression |
sztring | Kifejezés a válaszkimenet lekéréséhez. A kifejezés az elszívó típusértékétől függ. |
responseVariables.variableName |
sztring | Egyedi válaszváltozó neve. Ezt a változót egy későbbi kérelemben a szintaxis használatával {$variable-name} hivatkozhatja. |
queryParameters |
array | A végpontnak átadni kívánt lekérdezési sztringparaméterek listája. |
queryParameters.key |
sztring | Lekérdezési sztring paraméterének neve. |
queryParameters.value |
sztring | Lekérdezési sztring paraméterének értéke. |
requestType |
sztring | A kérés típusa. A támogatott értékek a következők: URL vagy CURL . |
endpoint |
sztring | A tesztelni kívánt alkalmazásvégpont URL-címe. |
headers |
array | Az alkalmazásvégpontnak továbbítandó HTTP-fejlécek listája. Adja meg az egyes fejlécekhez tartozó kulcs-érték párokat. |
body |
sztring | A HTTP-kérés törzsszövege. Ezzel requestBodyFormat megadhatja a törzstartalom formátumát. |
requestBodyFormat |
sztring | A törzstartalom formátuma. A támogatott értékek a következők: Text , JSON , JavaScript , HTML és XML . |
method |
sztring | HTTP-metódus a végpont meghívásához. A támogatott értékek a következők: GET , POST , PUT , DELETE , PATCH , HEAD és OPTIONS . |
curlCommand |
sztring | a futtatandó cURL-parancs. Megköveteli, hogy a requestType CURL . |
A következő JSON-kódrészlet egy példakérési JSON-fájlt tartalmaz:
{
"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
}
]
}
Konfiguráció betöltése
A requests JSON-fájl a következő tulajdonságokat használja a tulajdonság terheléskonfigurációjának testSetup
meghatározásához:
Tulajdonság | Type | Betöltési típus | Leírás |
---|---|---|---|
loadType |
sztring | Terhelési minta típusa. A támogatott értékek a következők: linear , step és spike . |
|
scenario |
sztring | Hivatkozás a tulajdonságban megadott kérelemcsoportra scenarios . |
|
virtualUsersPerEngine |
egész szám | Mind | Virtuális felhasználók száma tesztmotor-példányonként. |
durationInSeconds |
egész szám | Mind | A terhelési teszt teljes időtartama másodpercben. |
rampUpTimeInSeconds |
egész szám | Lineáris, lépés | A virtuális felhasználók célszámának eléréséhez másodpercben megadott időtartam. |
rampUpSteps |
egész szám | Lépés | A virtuális felhasználók célszámának eléréséhez szükséges lépések száma. |
spikeMultiplier |
egész szám | Spike | A célfelhasználók számának szorzása a kiugró időtartam alatt. |
spikeHoldTimeInSeconds |
egész szám | Spike | Teljes időtartam másodpercben a kiugró terhelés fenntartásához. |
Kapcsolódó tartalom
- Megtudhatja, hogyan hozhat létre automatizált regressziós tesztelést a CI/CD-munkafolyamatban.
- Megtudhatja, hogyan paraméterezheti a terheléses teszteket titkos kódokkal és környezeti változókkal.
- Megtudhatja, hogyan töltheti be a teszt által védett végpontokat.
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: