Ange baslinjer för belastningstester

Slutförd

Nu när du har definierat belastningstesterna och tröskelvärdena ska vi använda dem för att skapa dina baslinjer.

En baslinje är en uppsättning kriterier för mått som du använder för att utvärdera om ett test misslyckades eller lyckades. Dina kriterier kan till exempel vara:

  • Genomsnittliga begäranden per sekund.
  • Felfrekvens.
  • Maximal svarstid.

Om du vill konfigurera baslinjer för belastningstester måste du:

  1. Definiera baslinjer och testvillkor för enskilda användarflöden och den övergripande lösningen.

  2. Justera tröskelvärdena för vanliga körningar för att kontrollera att programmet fortsätter att tillhandahålla den förväntade prestandan och inte ger några fel.

  3. Använd en separat baslinje för kaostestning som tolererar förväntade toppar i felfrekvenser och tillfälligt lägre prestanda.

Den här aktiviteten är kontinuerlig och måste utföras regelbundet. Du måste till exempel granska baslinjer när du har introducerat nya funktioner eller ändrat tjänst-SKU:er.

Använda Azure Load Testing för att utvärdera tröskelvärden

Under utvecklingsfasen är prestanda för komponenter och resurskrav ofta inte tydligt kända. Belastningstester kan hjälpa dig att identifiera den förväntade prestandan, inklusive utskalningsbeteendet, för den övergripande lösningen och dess komponenter. De kan också hjälpa dig att identifiera de tröskelvärden som du kan förvänta dig för att skapa din baslinje.

Ställ följande frågor och utvärdera regelbundet:

  • Hur lång tid tar det att slutföra en enskild åtgärd, ett användarflöde eller ETT API-anrop?
  • Hur många begäranden, åtgärder och samtidiga användare kan en komponent fungera per sekund?
  • Hur många resurser förbrukas?
  • Hur påverkar 10, 50 och 100 samtidiga användare den underliggande infrastrukturen och serverdelstjänsten?
  • När ska komponenterna skalas in och ut?

Svaren leder till tester och tröskelvärden. Begäranden per sekund, svarstid och felprocent är alla tillämpliga exempel på tröskelvärden.

När du har noterat informationen använder du värden för att analysera och utvärdera prestanda för den övergripande lösningen och dess komponenter på ett konsekvent sätt. Använd också baslinjen för att identifiera effekten av ändringar och drifter från den förväntade prestandan.

När du kör testerna kan du ha olika krav för särskilda användningsfall, till exempel en felaktig komponent eller en belastningstoppar. I dessa fall kan högre felfrekvenser eller lägre begäranden per sekund förväntas och accepteras. Du kan ha en separat baslinje som innehåller justerade tröskelvärden för att hantera dessa situationer. Till exempel:

  • Scenarier med hög belastning där en utskalningsåtgärd förväntas och krävs. Det kan uppstå en tillfällig prestandaförsämring tills åtgärden har slutförts.
  • Kaosexperiment som en del av en kontinuerlig valideringspipeline. En högre felfrekvens kan förväntas tills återhämtningsåtgärderna börjar läka programmet själv eller redundansväxla till en annan region.

Använd Azure Load Testing för att utvärdera hur systemet presterar mot definierade tröskelvärden. Tjänsten har en inbyggd testvillkorsfunktion . Du kan alltså ange kriterier som ett belastningstest måste klara.

Du kan använda testvillkor för att implementera olika baslinjer, som du ser i följande skärmbild.

Azure Portal skärmbild av en tabell som visar exempel på testvillkor.

Du kan ange dessa testvillkor i JSON och använda API:et för att lägga till dem i belastningstestet. Här är ett exempel:

[
  {
    "passFailMetrics": {
      "<guid-1>": {
        "clientmetric": "requests_per_sec",
        "aggregate": "avg",
        "condition": "<",
        "value": 1200.0,
        "actualValue": 0.0,
        "result": null,
        "action": "continue"
      },
      "<guid-2>": {
        "clientmetric": "response_time_ms",
        "aggregate": "avg",
        "condition": ">",
        "value": 75.0,
        "actualValue": 0.0,
        "action": "continue"
      },
      "<guid-3>": {
        "clientmetric": "error",
        "aggregate": "percentage",
        "condition": ">",
        "value": 0.0,
        "actualValue": 0.0,
        "action": "continue"
      }
    }
  }
]

En annan viktig aspekt av kontinuerlig validering är att mata in tester som simulerar verkliga problem. I nästa lektion får du lära dig mer om att lägga till kaosexperiment i valideringsprocessen.

Kunskapstest

1.

Hur många baslinjer krävs?

2.

Definierar en baslinje de prestanda som distributionen kan tillhandahålla?

3.

När behöver baslinjer utvärderas och uppdateras?