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:
|
|
testPlan |
tekenreeks | J | Verwijzing naar het testplanbestand.
|
|
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 |
|
|
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.
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-value
worden 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 , JSONExtractor en 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 HTML XML . |
method |
tekenreeks | HTTP-methode voor het aanroepen van het eindpunt. Ondersteunde waarden zijn: GET , POST , PUT , DELETE , , PATCH , , en HEAD OPTIONS . |
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 , step en 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
Gerelateerde inhoud
- Meer informatie over het bouwen van geautomatiseerde regressietests in uw CI/CD-werkstroom.
- Meer informatie over het parameteriseren van belastingstests met geheimen en omgevingsvariabelen.
- Meer informatie over het laden van beveiligde eindpunten voor test.