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 belastningstestning kan du också skapa ett belastningstest genom att ladda upp ett testskript. Azure Load Testing stöder körning av Apache JMeter-baserade tester eller Locust-baserade tester. 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.
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 kan använda Apache JMeter- eller Locust-testramverken och har stöd för 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
För JMeter kan du använda JMeter-plugin-program i testskriptet. Du kan 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 och Locust.
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 eller använda Azure CLI för att integrera med andra CI-verktyg.
Hur fungerar Azure Load Testing?
Azure Load Testing använder Apache JMeter eller Locust 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. Du kan till exempel använda Azure Load Testing för att läsa in test av 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 testskriptet för att simulera ett stort antal virtuella användare samtidigt som de får åtkomst till dina programslutpunkter. När du skapar ett belastningstest baserat på en URL (snabbtest) genererar Azure Load Testing automatiskt ett 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- eller Locust-testskript, 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.
Relaterat innehåll
Börja använda Azure Load Testing: