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:
  • URL: URL-alapú terhelésteszt
  • JMX: JMeter-alapú terhelésteszt
testPlan sztring Y Hivatkozás a teszttervfájlra.
  • Ha testType: JMX: a JMeter-tesztszkript relatív elérési útja.
  • Ha testType: URL: a kérelmek JSON-fájljának relatív elérési útja.
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 errorPercentagemá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-valuehatá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 requestTypeCURL.

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.