Konfigurera Azure Load Testing för högskalig belastning

I den här artikeln får du lära dig hur du konfigurerar belastningstestet för hög skala med Azure Load Testing. Azure Load Testing sammanfattar komplexiteten i etableringen av infrastrukturen för att simulera storskalig trafik. Om du vill skala ut ett belastningstest kan du konfigurera antalet parallella testmotorinstanser. För att uppnå en optimal belastningsfördelning kan du övervaka hälsomåtten för testinstansen på instrumentpanelen för Azure Load Testing.

Förutsättningar

  • Ett Azure-konto med en aktiv prenumeration. Om du inte har någon Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar.

  • En befintlig Azure-belastningstestningsresurs. Information om hur du skapar en Azure-belastningstestresurs finns i snabbstarten Skapa och kör ett belastningstest.

Konfigurera inläsningsparametrar för ett belastningstest

Om du vill simulera användartrafik för ditt program kan du konfigurera belastningsmönstret och antalet virtuella användare som du vill simulera belastning för. Genom att köra belastningstestet över många parallella testmotorinstanser kan Azure Load Testing skala ut antalet virtuella användare som simulerar trafik till ditt program. Belastningsmönstret avgör hur belastningen fördelas under belastningstestets varaktighet. Exempel på belastningsmönster är linjär, stegvis eller toppbelastning.

Beroende på typen av belastningstest, URL-baserad eller JMeter-baserad har du olika alternativ för att konfigurera målbelastningen och belastningsmönstret. I följande tabell visas skillnaderna mellan de två testtyperna.

Testtyp Antal virtuella användare Läs in mönster
URL-baserad (grundläggande) Ange målantalet för virtuella användare i belastningstestkonfigurationen. Linjärt belastningsmönster, baserat på uppfartstiden och antalet virtuella användare.
URL-baserad (avancerad) Ange antalet testmotorer och antalet virtuella användare per instans i belastningstestkonfigurationen. Konfigurera belastningsmönstret (linjärt, steg, topp).
JMeter-baserad Ange antalet testmotorer i belastningstestkonfigurationen. Ange antalet virtuella användare i testskriptet. Konfigurera inläsningsmönstret i testskriptet.

Konfigurera inläsningsparametrar för URL-baserade tester

Så här anger du inläsningsparametrarna för ett URL-baserat belastningstest:

  1. I Azure-portalen går du till din Azure Load Testing-resurs.

  2. I det vänstra navigeringsfältet väljer du Tester för att visa alla tester.

  3. I listan väljer du ditt belastningstest och väljer sedan Redigera.

    Screenshot that shows the list of load tests and the 'Edit' button.

    Alternativt kan du också redigera testkonfigurationen från testinformationssidan. Det gör du genom att välja Konfigurera och sedan Testa.

  4. På sidan Grundläggande inställningar väljer du Aktivera avancerade inställningar.

  5. På sidan Redigera test väljer du fliken Läs in .

    För URL-baserade tester kan du konfigurera antalet parallella testmotorinstanser och belastningsmönstret.

  6. Använd skjutreglaget Motorinstanser för att uppdatera antalet parallella testmotorinstanser. Alternativt anger du målvärdet i indatarutan.

    Screenshot of the 'Load' tab on the 'Edit test' pane.

  7. Välj värdet Läs in mönster i listan.

    Fyll i motsvarande konfigurationsinställningar för varje mönster. Diagrammet ger en visuell representation av belastningsmönstret och dess konfigurationsparametrar.

    Screenshot of the 'Load' tab when editing a load test, showing how to configure the load pattern.

Konfigurera inläsningsparametrar för JMeter-baserade tester

Så här anger du inläsningsparametrarna för ett JMeter-baserat belastningstest:

  1. I Azure-portalen går du till din Azure Load Testing-resurs.

  2. I det vänstra navigeringsfältet väljer du Tester för att visa alla tester.

  3. I listan väljer du ditt belastningstest och väljer sedan Redigera.

    Screenshot that shows the list of load tests and the 'Edit' button.

    Alternativt kan du också redigera testkonfigurationen från testinformationssidan. Det gör du genom att välja Konfigurera och sedan Testa.

  4. På sidan Redigera test väljer du fliken Läs in. Använd skjutreglagekontrollen Motorinstanser för att uppdatera antalet testmotorinstanser eller ange värdet direkt i indatarutan.

    Screenshot of the 'Load' tab on the 'Edit test' pane.

  5. Välj Använd för att ändra testet och använd den nya konfigurationen när du kör det igen.

Övervaka motorinstansmått

För att säkerställa att testmotorinstanserna i sig inte är en flaskhals för prestanda kan du övervaka resursmått för testmotorinstansen. En hög resursanvändning för en testinstans kan påverka belastningstestets resultat negativt.

Azure Load Testing rapporterar fyra resursmått för varje instans:

  • CPU-procent.
  • Minnesprocent.
  • Nätverksbyte per sekund.
  • Antal virtuella användare.

En testmotorinstans anses vara felfri om den genomsnittliga CPU-procentandelen eller minnesprocenten under testkörningens varaktighet ligger under 75 %.

Så här visar du motorns resursmått:

  1. Gå till din resurs för belastningstestning. I den vänstra rutan väljer du Tester för att visa listan över belastningstester.

  2. I listan väljer du ditt belastningstest för att visa listan över testkörningar.

  3. I testkörningslistan väljer du din testkörning.

  4. I testkörningsinstrumentpanelen väljer du Motorhälsa för att visa motorresursmåtten.

    Du kan också välja en specifik testmotorinstans med hjälp av filterkontrollerna.

Screenshot that shows the load engine health metrics on the test run dashboard.

Felsöka felaktiga motorinstanser

Om en eller flera instanser visar hög resursanvändning kan det påverka testresultaten. Lös problemet genom att prova ett eller flera av följande steg:

  • Minska antalet trådar (virtuella användare) per testmotor. För att uppnå ett målantal virtuella användare kan du öka antalet motorinstanser för belastningstestet.

  • Kontrollera att skriptet är effektivt utan redundant kod.

  • Om motorns hälsostatus är okänd kör du testet igen.

Fastställa begäranden per sekund

Det maximala antalet begäranden per sekund (RPS) som Azure Load Testing kan generera för belastningstestet beror på programmets svarstid och antalet virtuella användare (VUs). Programfördröjning är den totala tiden från att skicka en programbegäran från testmotorn till att ta emot svaret. Antalet virtuella användare är antalet parallella begäranden som Azure Load Testing utför vid en viss tidpunkt.

Om du vill beräkna antalet begäranden per sekund använder du följande formel: RPS = (antal virtuella enheter) * (1/svarstid i sekunder).

Om programmets svarstid till exempel är 20 millisekunder (0,02 sekunder) och du genererar en belastning på 2 000 virtuella datorer kan du uppnå cirka 100 000 RPS (2 000 * 1/0,02s).

Om du vill uppnå ett målantal begäranden per sekund konfigurerar du det totala antalet virtuella användare för belastningstestet.

Kommentar

Apache JMeter rapporterar endast begäranden som gjorde det till servern och tillbaka, antingen lyckades eller inte. Om Apache JMeter inte kan ansluta till ditt program blir det faktiska antalet begäranden per sekund lägre än det maximala värdet. Möjliga orsaker kan vara att servern är för upptagen för att hantera begäran eller att ett TLS/SSL-certifikat saknas. Om du vill diagnostisera anslutningsproblem kan du kontrollera diagrammet Fel i instrumentpanelen för belastningstestning och ladda ned loggfilerna för belastningstestet.

Testmotorinstanser och virtuella användare

I Apache JMeter-skriptet kan du ange antalet parallella trådar. Varje tråd representerar en virtuell användare som kommer åt programslutpunkten. Vi rekommenderar att du håller antalet trådar i ett skript under högst 250.

I Azure Load Testing ansvarar testmotorinstanser för att köra Apache JMeter-skriptet. Alla testmotorinstanser körs parallellt. Du kan konfigurera antalet instanser för ett belastningstest.

Det totala antalet virtuella användare för ett belastningstest är då: VIRTUELLA datorer = (# trådar) * (# testmotorinstanser).

Om du vill simulera ett målantal virtuella användare kan du konfigurera parallella trådar i JMeter-skriptet och motorinstanserna för belastningstestet i enlighet med detta. Övervaka testmotormåtten för att optimera antalet instanser.

Om du till exempel vill simulera 1 000 virtuella användare anger du antalet trådar i Apache JMeter-skriptet till 250. Konfigurera sedan belastningstestet med fyra testmotorinstanser (d.ex. 4 x 250 trådar).

Platsen för Azure Load Testing-resursen avgör platsen för testmotorinstanserna. Alla testmotorinstanser i en belastningstestningsresurs finns i samma Azure-region.