Definer fejlkriterier, og stop automatisk
Kriterier for fejl giver dig mulighed for at definere forventninger til ydeevne og kvalitet for dit program under indlæsning. Azure Load Testing understøtter forskellige klientmålepunkter til definition af fejlkriterier, f.eks. fejlfrekvens eller svartid. Kriterier for automatisk stop giver dig mulighed for automatisk at stoppe din belastningstest, når fejlfrekvensen overstiger en given grænse.
I dette undermodul lærer du, hvordan du definerer fejlkriterier og automatisk stopkriterier for belastningstest.
Kriterier for fejl i indlæsningstest
Kriterier for fejl i belastningstest er betingelser for målepunkter på klientsiden, som din test skal opfylde. Du definerer testkriterier på belastningstestniveau i Azure Load Testing. En belastningstest kan have et eller flere testkriterier. Når mindst et af testkriterierne evalueres til sand, får belastningstesten mislykkedes status.
Du kan definere testkriterier på to niveauer. En belastningstest kan kombinere kriterier på de forskellige niveauer.
- belastningstestniveau: f.eks. for at sikre, at den samlede fejlprocent ikke overstiger en grænse.
- JMeter-anmodningsniveau (JMeter sampler): Du kan f.eks. angive en grænse for svartid for anmodningen getProducts, men se bort fra svartiden for den logge på anmodning.
Du kan maksimalt definere 50 testkriterier for en belastningstest. Hvis der er flere kriterier for den samme klientmetrikværdi, bruges kriteriet med den laveste tærskelværdi.
Fail kriteriestruktur
Formatet af fejlkriterier i Azure Load Testing følger formatet af en betinget sætning for en understøttet metrikværdi. Sørg f.eks. for, at det gennemsnitlige antal anmodninger pr. sekund er større end 500.
Fejlkriterier har følgende struktur:
- Testkriterier på belastningstestniveau:
Aggregate_function (client_metric) condition threshold. - Testkriterier, der anvendes på bestemte JMeter-anmodninger:
Request: Aggregate_function (client_metric) condition threshold.
I følgende tabel beskrives de forskellige komponenter:
| Parameter | Beskrivelse |
|---|---|
Client metric |
Kræves. Den klientmetrikværdi, som betingelsen skal anvendes på. |
Aggregate function |
Kræves. Den aggregeringsfunktion, der skal anvendes på klientmetrikværdien. |
Condition |
Kræves. Sammenligningsoperatoren, f.eks. greater thaneller less than. |
Threshold |
Kræves. Den numeriske værdi, der skal sammenlignes med klientmetrikværdien. |
Request |
Valgfri. Navnet på det eksempel i JMeter-scriptet, som kriteriet gælder for. Hvis du ikke angiver et anmodningsnavn, gælder kriteriet for aggregeringen af alle anmodninger i scriptet. Medtag ikke nogen personlige data i eksempelnavnet i dit JMeter-script. Eksempelnavnene vises på dashboardet med resultater af Azure Load Testing. |
Eksempel på kriterier for fejl i indlæsningstest
I følgende eksempel defineres tre fejlkriterier. De første to kriterier gælder for den overordnede belastningstest, og det sidste angiver en betingelse for anmodningen om GetCustomerDetails.
Testkriterierne tilføjes i indstillingen failureCriteria.
```yaml
version: v0.1
testId: SampleTestCICD
displayName: Sample test from CI/CD
testPlan: SampleTest.jmx
description: Load test website home page
engineInstances: 1
failureCriteria:
- avg(response_time_ms) > 300
- percentage(error) > 50
- GetCustomerDetails: avg(latency) >200
```
Når du definerer et testkriterium for en bestemt JMeter-anmodning, skal anmodningsnavnet svare til navnet på JMeter-sampleren i JMX-filen.
Konfiguration af automatisk stop
Azure Load Testing stopper automatisk en belastningstest, hvis fejlprocenten overskrider en given grænse for et bestemt tidsvindue. Automatisk stop af sikkerhedsforanstaltninger sikrer dig mod fejltest, der medfører yderligere omkostninger, f.eks. på grund af en forkert konfigureret URL-adresse til slutpunktet.
I konfigurationen af indlæsningstesten kan du aktivere eller deaktivere funktionen til automatisk stop og konfigurere tærsklen for fejlprocenten og tidsvinduet. Azure Load Testing stopper som standard automatisk en belastningstest, der har en fejlprocent på mindst 90% i et hvilket som helst 60-sekunders vindue.
Du kan bruge funktionen til automatisk stop af Azure Load Testing sammen med en AutoStop-lyttefunktion i dit JMeter-script. Indlæsningstesten stopper automatisk, når et af kriterierne i konfigurationen af den automatiske stop eller JMeter AutoStop-lyttefunktionen er opfyldt.
Stop automatisk med GitHub-handlinger
Hvis du vil konfigurere automatisk stop for din belastningstest i en GitHub-handlingsarbejdsproces, skal du opdatere YAML-filen til indlæsningstestkonfiguration med indstillingen autoStop og angive errorPercentage og timeWindow.
Følgende eksempel stopper automatisk indlæsningstesten, når fejlprocenten overstiger 80% i løbet af et hvilket som helst 2-minutters tidsrum:
```yaml
version: v0.1
testId: SampleTestCICD
displayName: Sample test from CI/CD
testPlan: SampleTest.jmx
description: Load test website home page
engineInstances: 1
autoStop:
errorPercentage: 80
timeWindow: 120
```
- Hvis du vil deaktivere automatisk stop, skal du føje
autoStop: disabletil konfigurationsfilen.
I følgende eksempel deaktiveres automatisk stop for din belastningstest:
```yaml
version: v0.1
testId: SampleTestCICD
displayName: Sample test from CI/CD
testPlan: SampleTest.jmx
description: Load test website home page
engineInstances: 1
autoStop: disable
```