Vad är Azure Load Testing?

Azure Load Testing är en fullständigt hanterad tjänst för belastningstestning som gör att du kan generera högskalig belastning. Tjänsten simulerar trafik för dina program oavsett var de lagras. Utvecklare, testare och kvalitetssäkringstekniker kan använda den för att optimera programprestanda, skalbarhet eller kapacitet.

Skapa snabbt ett belastningstest för webbprogrammet med hjälp av en URL och utan förkunskaper om testverktyg. Azure Load Testing abstraherar komplexiteten och infrastrukturen för att köra belastningstestet i stor skala.

För mer avancerade scenarier för belastningstest kan du skapa ett belastningstest genom att återanvända ett befintligt Apache JMeter-testskript, ett populärt verktyg för belastning och prestanda med öppen källkod. Testplanen kan till exempel bestå av flera programbegäranden, du vill anropa icke-HTTP-slutpunkter eller använda indata och parametrar för att göra testet mer dynamiskt.

Om ditt program finns i Azure samlar Azure Load Testing in detaljerade resursmått som hjälper dig att identifiera flaskhalsar i prestanda i dina Azure-programkomponenter.

Om du vill samla in prestandaregressioner för program tidigt lägger du till belastningstestet i arbetsflödet för kontinuerlig integrering och kontinuerlig distribution (CI/CD). Använd testfelkriterier för att definiera och verifiera dina krav på programkvalitet.

Med Azure Load Testing kan du testa privata programslutpunkter eller program som du är värd för lokalt. Mer information finns i scenarierna för att distribuera Azure Load Testing i ett virtuellt nätverk.

Följande diagram visar en arkitekturöversikt över Azure Load Testing.

Diagram that shows the Azure Load Testing architecture.

Kommentar

Översiktsbilden visar hur Azure Load Testing använder Azure Monitor för att samla in mått för appkomponenter. Läs mer om de Azure-resurstyper som stöds.

Läs mer om viktiga begrepp för Azure Load Testing.

Användningsscenarier

Azure Load Testing använder Apache JMeter och stöder en mängd olika programtyper och kommunikationsprotokoll. Följande lista innehåller exempel på program- eller slutpunktstyper som stöds:

  • Webbprogram med HTTP eller HTTPS
  • REST API:er
  • Databaser via JDBC
  • TCP-baserade slutpunkter

Genom att använda JMeter-plugin-program i testskriptet kan du läsa in fler programtyper.

Med den snabba testupplevelsen kan du testa en enda URL-baserad HTTP-slutpunkt. Genom att ladda upp ett JMeter-skript kan du använda alla JMeter-kommunikationsprotokoll som stöds.

Azure Load Testing stöder för närvarande inte andra testramverk än Apache JMeter.

Identifiera prestandaflaskhalsar med hjälp av storskaliga belastningstester

Prestandaproblem förblir ofta oidentifierade tills ett program är under belastning. Du kan starta ett storskaligt belastningstest i Azure-portalen för att lära dig tidigare hur ditt program beter sig under stress. När testet körs tillhandahåller Instrumentpanelen för Azure Load Testing en liveuppdatering av måtten på klient- och serversidan.

När belastningstestet är klart kan du använda instrumentpanelen för att analysera testresultaten och identifiera flaskhalsar i prestanda. För Azure-värdbaserade program visar instrumentpanelen detaljerade resursmått för Azure-programkomponenterna. Kom igång med en självstudie för att identifiera flaskhalsar i prestanda för Azure-värdbaserade program.

Azure Load Testing behåller en historik över testkörningar och gör att du kan jämföra flera körningar visuellt för att identifiera prestandaregressioner över tid.

Du kan också ladda ned testresultaten för analys i ett verktyg från tredje part.

Aktivera automatiserad belastningstestning

Du kan integrera Azure Load Testing i din CI/CD-pipeline på meningsfulla platser under utvecklingslivscykeln. Du kan till exempel automatiskt köra ett belastningstest i slutet av varje sprint eller i en mellanlagringsmiljö för att verifiera en versionskandidatversion.

Kom igång med att lägga till belastningstestning i ditt CI/CD-arbetsflöde för att snabbt identifiera prestandaförsämring av ditt program under belastning.

I testkonfigurationen anger du villkor för testfel för att fånga programprestanda eller stabilitetsregressioner tidigt i utvecklingscykeln. Du kan till exempel få aviseringar när den genomsnittliga svarstiden eller antalet fel överskrider ett visst tröskelvärde.

Azure Load Testing stoppar automatiskt ett automatiserat belastningstest som svar på specifika feltillstånd. Alternativt kan du också använda lyssnaren AutoStop i ditt Apache JMeter-skript. Att automatiskt stoppa skyddar dig mot misslyckade tester medför ytterligare kostnader, till exempel på grund av en felaktigt konfigurerad slutpunkts-URL. Lär dig hur du kan konfigurera automatisk stopp för belastningstestet.

Du kan utlösa Azure Load Testing från Azure Pipelines eller GitHub Actions-arbetsflöden.

Hur fungerar Azure Load Testing?

Azure Load Testing använder Apache JMeter för att köra belastningstester. Du kan använda Apache JMeter-plugin-program från https://jmeter-plugins.org eller ladda upp din egen plugin-kod. Azure Load Testing stöder alla kommunikationsprotokoll som JMeter stöder. Om du till exempel vill läsa in testa en databasanslutning eller meddelandekö. Läs mer om apache JMeter-funktioner som stöds.

Testmotorerna för Azure Load Testing abstraherar den infrastruktur som krävs för att köra ett storskaligt belastningstest. Varje testmotorinstans kör JMeter-skriptet för att simulera ett stort antal virtuella användare som samtidigt kommer åt dina programslutpunkter. När du skapar ett belastningstest baserat på en URL (snabbtest) genererar Azure Load Testing automatiskt ett JMeter-testskript åt dig. Om du vill skala ut belastningstestet kan du konfigurera antalet testmotorer.

Du kan vara värd för programmet under belastning var som helst: i Azure, lokalt eller i andra moln. Om du vill köra ett belastningstest för tjänster som inte har någon offentlig slutpunkt distribuerar du Azure Load Testing i ett virtuellt nätverk.

Under belastningstestet samlar Azure Load Testing in följande resursmått och visar dem på en instrumentpanel:

  • Mått på klientsidan ger dig information som rapporterats av testmotorn. Den här informationen omfattar antalet virtuella användare, svarstiden för begäran eller antalet begäranden per sekund.

  • Mått på serversidan innehåller information om dina Azure-programkomponenter. Azure Load Testing integreras med Azure Monitor, inklusive Application Insights och Container Insights, för att samla in information från Azure-tjänsterna. Beroende på typen av tjänst är olika mått tillgängliga. Mått kan till exempel vara för antalet databasläsningar, typen av HTTP-svar eller förbrukning av containerresurser.

Azure Load Testing innehåller automatiskt metodtips för Azure-nätverk för att se till att dina tester körs på ett säkert och tillförlitligt sätt. Belastningstester stoppas automatiskt om programslutpunkterna eller Azure-komponenterna startar begränsningsbegäranden.

Tjänsten krypterar automatiskt alla data som lagras i din belastningstestningsresurs med nycklar som hanteras av Microsoft (tjänsthanterade nycklar). Dessa data innehåller till exempel ditt Apache JMeter-skript, konfigurationsfiler med mera. Alternativt kan du även konfigurera tjänsten så att den använder kundhanterade nycklar.

Datahemvist i regionen

Azure Load Testing lagrar eller bearbetar inte kunddata utanför den region som du distribuerar tjänstinstansen i.

Nästa steg

Börja använda Azure Load Testing: