Delen via


Een belastingstest configureren in YAML

Meer informatie over het configureren van uw belastingstest in Azure Load Testing met behulp van YAML. U gebruikt het YAML-bestand voor de testconfiguratie om belastingstests te maken en uit te voeren op basis van uw CI/CD-werkstroom (continue integratie en continue levering).

YAML-syntaxis voor belastingstest

Een configuratie van een belastingstest maakt gebruik van de volgende sleutels:

Sleutel Type Vereist Default value Beschrijving
version tekenreeks J Versie van de belastingtestspecificatie. De enige ondersteunde waarde is v0.1.
testId tekenreeks J Unieke id van de belastingstest. De waarde moet tussen 2 en 50 tekens ([a-z0-9_-]) zijn. Voor een bestaande test kunt u de testId pagina met testdetails ophalen in Azure Portal.
testName tekenreeks N Afgeschaft. Unieke id van de belastingstest. Deze instelling wordt vervangen door testId. U kunt nog steeds bestaande tests uitvoeren met het testName veld.
displayName tekenreeks N Weergavenaam van de test. Deze waarde wordt weergegeven in de lijst met tests in Azure Portal. Als deze niet is opgegeven, testId wordt deze gebruikt als weergavenaam.
description tekenreeks N Korte beschrijving van de test. De waarde heeft een maximale lengte van 100 tekens.
testType tekenreeks J Testtype. Mogelijke waarden:
  • URL: belastingstest op basis van URL
  • JMX: belastingstest op basis van JMeter
  • Locust: Belastingstest op basis van locust
testPlan tekenreeks J Verwijzing naar het testplanbestand.
  • Als testType: JMX: relatief pad naar het JMeter-testscript.
  • Als testType: Locust: relatief pad naar het locust-testscript.
  • Als testType: URL: relatief pad naar het JSON-bestand met aanvragen.
engineInstances geheel getal J Aantal exemplaren van parallelle testengines voor het uitvoeren van het testplan. Meer informatie over het configureren van grootschalige belasting.
configurationFiles tekenreeksmatrix N Lijst met externe bestanden, vereist voor het testscript. Bijvoorbeeld CSV-gegevensbestanden, afbeeldingen of een ander gegevensbestand.
Azure Load Testing uploadt alle bestanden in dezelfde map als het testscript. In het JMeter-script of het locust-script verwijst u alleen naar externe bestanden met de bestandsnaam en verwijdert u alle bestandspadgegevens.
failureCriteria object N Lijst met mislukte criteria voor belastingstests. Zie failureCriteria voor meer informatie.
autoStop tekenreeks of object N Stop de belastingstest automatisch wanneer het foutpercentage een waarde overschrijdt.
Mogelijke waarden:
- disable: stop een belastingtest niet automatisch.
- object: zie autostopconfiguratie voor meer informatie.
properties object N
  • Als testType: JMX: JMeter-eigenschappenbestand verwijzingen.
  • Als testType: Locust: Locust-configuratiebestand verwijst.
Zie eigenschappen voor meer informatie.
zipArtifacts tekenreeksmatrix N Hiermee geeft u de lijst met zip-artefactbestanden. Voor andere bestanden dan JMeter-scripts en gebruikerseigenschappen voor op JMeter gebaseerde tests en locust-script- en configuratiebestanden voor op locust gebaseerde tests, als de bestandsgrootte groter is dan 50 MB, comprimeert u deze in een ZIP-bestand. Zorg ervoor dat het ZIP-bestand kleiner blijft dan 50 MB. Slechts 5 ZIP-artefacten zijn toegestaan met maximaal 1000 bestanden in elke en niet-gecomprimeerde grootte van 1 GB. Alleen van toepassing op testType: JMX en testType: Locust.
splitAllCSVs boolean N Onwaar Splits de CSV-invoerbestanden gelijkmatig over alle exemplaren van de testengine. Zie Een CSV-bestand lezen in belastingstests voor meer informatie.
secrets object N Lijst met geheimen waarnaar het Apache JMeter- of Locust-script verwijst. Zie geheimen voor meer informatie.
env object N Lijst met omgevingsvariabelen waarnaar het Apache JMeter-script of locust verwijst. Zie omgevingsvariabelen voor meer informatie.
certificates object N Lijst met clientcertificaten voor verificatie met toepassingseindpunten in het JMeter- of Locust-script. Zie certificaten voor meer informatie.
keyVaultReferenceIdentity tekenreeks N Resource-id van de door de gebruiker toegewezen beheerde identiteit voor toegang tot de geheimen vanuit uw Azure Key Vault. Als u een door het systeem beheerde identiteit gebruikt, is deze informatie niet nodig. Zorg ervoor dat u deze door de gebruiker toegewezen identiteit toegang verleent tot uw Azure-sleutelkluis. Meer informatie over beheerde identiteiten in Azure Load Testing.
subnetId tekenreeks N Resource-id van het subnet van het virtuele netwerk voor het testen van privé-gehoste eindpunten. Dit subnet fungeert als host voor de geïnjecteerde test-engine-VM's. Zie voor meer informatie hoe u privé-gehoste eindpunten laadt.
publicIPDisabled boolean N Schakel de implementatie van een openbaar IP-adres, een load balancer en een netwerkbeveiligingsgroep uit tijdens het testen van een privé-eindpunt. Zie voor meer informatie hoe u privé-gehoste eindpunten laadt.
regionalLoadTestConfig object N Distribueer de belasting over regio's om gebruikersverkeer vanuit meerdere regio's te simuleren. Zie de configuratie van regionale belastingstests voor meer informatie.

Voorbeeld van configuratie van belastingtest

Het volgende YAML-fragment bevat een voorbeeldconfiguratie voor belastingstests.

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 configuratie

Met testfaalcriteria kunt u voorwaarden definiëren om te bepalen of een belastingtest is uitgevoerd of niet. Als aan een of meer mislukte criteria wordt voldaan, krijgt de test een mislukt testresultaat. Meer informatie over het gebruik van mislukte criteria voor belastingtests.

U kunt mislukte criteria definiëren die van toepassing zijn op de hele belastingstest of die van toepassing zijn op een specifieke aanvraag. Mislukte criteria hebben de volgende structuur:

  • Testcriteria op het niveau van de belastingtest: Aggregate_function (client_metric) condition threshold.
  • Testcriteria die zijn toegepast op specifieke JMeter-aanvragen: Request: Aggregate_function (client_metric) condition threshold.

Ondersteunde metrische clientgegevens

Azure Load Testing ondersteunt de volgende metrische clientgegevens:

Metrische gegevens Statistische functie Threshold Voorwaarde Beschrijving
response_time_ms avg (gemiddeld)
min (minimum)
max (maximum)
pxx (percentiel), xx kan 50, 75, 90, 95, 96, 97, 98, 99, 999 en 9999 zijn
Integerwaarde, die het aantal milliseconden (ms) aangeeft. > (groter dan)
< (kleiner dan)
Reactietijd of verstreken tijd, in milliseconden. Meer informatie over verstreken tijd vindt u in de Apache JMeter-documentatie.
latency avg (gemiddeld)
min (minimum)
max (maximum)
pxx (percentiel), xx kan 50, 90, 95, 99 zijn
Integerwaarde, die het aantal milliseconden (ms) aangeeft. > (groter dan)
< (kleiner dan)
Latentie, in milliseconden. Meer informatie over latentie vindt u in de Documentatie van Apache JMeter.
error percentage Numerieke waarde in het bereik 0-100, dat een percentage vertegenwoordigt. > (groter dan) Percentage mislukte aanvragen.
requests_per_sec avg (gemiddeld) Numerieke waarde met maximaal twee decimalen. > (groter dan)
< (kleiner dan)
Aantal aanvragen per seconde.
requests count Integerwaarde. > (groter dan)
< (kleiner dan)
Totaal aantal aanvragen.

Voorbeeld van configuratie van mislukte criteria

In het volgende codefragment ziet u een configuratie voor de belastingtest, met drie mislukte criteria voor de belastingtest.

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 configuratie

Met de functionaliteit voor automatisch stoppen van belastingstests kunt u automatisch een belastingstest stoppen wanneer het foutpercentage een specifieke drempelwaarde overschrijdt tijdens een bepaald tijdvenster. Meer informatie over de functionaliteit voor automatisch stoppen van belastingstests.

Sleutel Type Default value Beschrijving
errorPercentage geheel getal 90 Drempelwaarde voor het foutpercentage, tijdens de timeWindow. Als het foutpercentage dit percentage gedurende een bepaald tijdvenster overschrijdt, stopt de testuitvoering automatisch.
timeWindow geheel getal 60 Tijdvenster in seconden voor het berekenen van de errorPercentage.

Voorbeeld van configuratie automatisch stoppen

In het volgende codefragment ziet u een configuratie voor de belastingtest, met drie mislukte criteria voor de belastingtest.

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 configuratie

U kunt een JMeter-gebruikerseigenschappenbestand opgeven voor uw belastingstest. Het bestand met gebruikerseigenschappen wordt samen met het testplan en andere bestanden geüpload. Meer informatie over het gebruik van JMeter-gebruikerseigenschappen in Azure Load Testing.

Sleutel Type Default value Beschrijving
userPropertyFile tekenreeks Bestand dat moet worden gebruikt als een Apache JMeter-gebruikerseigenschappenbestand of een locust-configuratiebestand. Voor Locust worden bestanden met extensies .conf, .ini en .toml ondersteund als een configuratiebestand. Het bestand wordt samen met het testscript en andere configuratiebestanden geüpload naar de Azure Load Testing-resource. Als het bestand zich in een submap op uw lokale computer bevindt, gebruikt u een pad ten opzichte van de locatie van het testscript.

Configuratievoorbeeld van gebruikerseigenschapsbestand

In het volgende codefragment ziet u een configuratie voor de belastingtest, waarmee een bestand met gebruikerseigenschappen wordt opgegeven.

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'

In het volgende codefragment ziet u een configuratie voor de belastingtest, waarmee een Locust-configuratiebestand wordt opgegeven.

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 configuratie

U kunt geheime waarden opslaan in Azure Key Vault en ernaar verwijzen in uw testplan. Meer informatie over het gebruik van geheimen met Azure Load Testing.

Sleutel Type Default value Beschrijving
name tekenreeks Naam van het geheim. Deze naam moet overeenkomen met de geheime naam die u in de testplanaanvragen gebruikt.
value tekenreeks URI (geheime id) voor het Azure Key Vault-geheim.

Voorbeeld van geheimenconfiguratie

In het volgende codefragment ziet u een configuratie voor de belastingtest, die verwijst naar een geheim my-secret in 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 configuratie

U kunt omgevingsvariabelen opgeven en ernaar verwijzen in uw testplan. Meer informatie over het gebruik van omgevingsvariabelen met Azure Load Testing.

Sleutel Type Default value Beschrijving
name tekenreeks Naam van de omgevingsvariabele. Deze naam moet overeenkomen met de naam van de variabele die u in de testplanaanvragen gebruikt.
value tekenreeks Waarde van de omgevingsvariabele.

Voorbeeld van configuratie van omgevingsvariabele

In het volgende codefragment ziet u een configuratie voor de belastingtest, waarmee een omgevingsvariabele my-variable en -waarde my-valueworden opgegeven.

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 configuratie

U kunt clientcertificaten doorgeven aan uw belastingstest. Het certificaat wordt opgeslagen in Azure Key Vault. Meer informatie over het gebruik van clientcertificaten met Azure Load Testing.

Sleutel Type Default value Beschrijving
name tekenreeks Naam van het certificaat.
value tekenreeks URI (geheime id) voor het certificaat in Azure Key Vault.

Voorbeeld van certificaatconfiguratie

In het volgende codefragment ziet u een configuratie voor de belastingtest, die verwijst naar een clientcertificaat in 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

JSON-bestand aanvragen

Als u een op URL gebaseerde test gebruikt, kunt u de HTTP-aanvragen in een JSON-bestand opgeven in plaats van een JMeter-testscript te gebruiken. Zorg ervoor dat u het in het testType URL YAML-bestand voor de testconfiguratie instelt en verwijst naar het JSON-bestand met aanvragen.

HTTP-aanvragen

Het JSON-bestand met aanvragen gebruikt de volgende eigenschappen voor het definiëren van aanvragen in de requests eigenschap:

Eigenschap Type Omschrijving
requestName tekenreeks Unieke aanvraagnaam. U kunt verwijzen naar de naam van de aanvraag wanneer u test mislukte criteria configureert.
responseVariables matrix Lijst met antwoordvariabelen. Gebruik antwoordvariabelen om een waarde uit de aanvraag te extraheren en ernaar te verwijzen in een volgende aanvraag. Meer informatie over antwoordvariabelen.
responseVariables.extractorType tekenreeks Mechanisme voor het extraheren van een waarde uit de antwoorduitvoer. Ondersteunde waarden zijn XPathExtractor, JSONExtractoren RegularExpression.
responseVariables.expression tekenreeks Expressie om de antwoorduitvoer op te halen. De expressie is afhankelijk van de waarde van het extractortype.
responseVariables.variableName tekenreeks Naam van unieke antwoordvariabele. U kunt in een volgende aanvraag naar deze variabele verwijzen met behulp van de {$variable-name} syntaxis.
queryParameters matrix Lijst met queryreeksparameters die moeten worden doorgegeven aan het eindpunt.
queryParameters.key tekenreeks Naam van queryreeksparameter.
queryParameters.value tekenreeks Waarde van queryreeksparameter.
requestType tekenreeks Type aanvraag. Ondersteunde waarden zijn: URL of CURL.
endpoint tekenreeks URL van het toepassingseindpunt dat moet worden getest.
headers matrix Lijst met HTTP-headers die moeten worden doorgegeven aan het toepassingseindpunt. Geef een sleutel-waardepaar op voor elke header.
body tekenreeks Hoofdtekst voor de HTTP-aanvraag. U kunt de indeling requestBodyFormat van de hoofdtekstinhoud opgeven.
requestBodyFormat tekenreeks Indeling van de hoofdtekstinhoud. Ondersteunde waarden zijn: Text, JSON, JavaScript, en HTMLXML.
method tekenreeks HTTP-methode voor het aanroepen van het eindpunt. Ondersteunde waarden zijn: GET, POST, PUT, DELETE, , PATCH, , en HEADOPTIONS.
curlCommand tekenreeks cURL-opdracht die moet worden uitgevoerd. Vereist dat het requestType is CURL.

Het volgende JSON-fragment bevat een voorbeeld van een JSON-bestand:

{
    "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
        }
    ]
}

Configuratie laden

Het JSON-bestand aanvraagt gebruikt de volgende eigenschappen voor het definiëren van de belastingconfiguratie in de testSetup eigenschap:

Eigenschap Type Type belasting Beschrijving
loadType tekenreeks Type belastingspatroon. Ondersteunde waarden zijn: linear, stepen spike.
scenario tekenreeks Verwijzing naar de aanvraaggroep, opgegeven in de scenarios eigenschap.
virtualUsersPerEngine geheel getal Alle Aantal virtuele gebruikers per test-engine-exemplaar.
durationInSeconds geheel getal Alle Totale duur van de belastingstest in seconden.
rampUpTimeInSeconds geheel getal Lineair, stap De duur in seconden om het doelaantal virtuele gebruikers te verhogen.
rampUpSteps geheel getal Stap Het aantal stappen om het doelaantal virtuele gebruikers te bereiken.
spikeMultiplier geheel getal Aar De factor waarmee het aantal doelgebruikers wordt vermenigvuldigd tijdens de piekduur.
spikeHoldTimeInSeconds geheel getal Aar Totale duur in seconden om de piekbelasting te behouden.

Configuratie van regionale belastingstest

U kunt de belasting verdelen over regio's om verkeerspatronen in de praktijk beter te simuleren. U kunt de regio's opgeven waaruit u de belasting wilt genereren en de hoeveelheid belasting die u wilt simuleren vanuit elke regio. U kunt dit doen door de regionaam en het gewenste aantal engine-exemplaren in die regio op te geven. Meer informatie over het genereren van belasting uit meerdere regio's.

Sleutel Type Default value Beschrijving
region tekenreeks Naam van de Azure-regio.
engineInstances geheel getal Aantal engine-exemplaren voor die Azure-regio.

Voorbeeld van configuratie van regionale belastingstest

In het volgende codefragment ziet u een configuratie voor de belastingtest, waarmee twee Azure-regio's eastus en eastasia het aantal engine-exemplaren voor elke regio worden opgegeven.

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