Testa privata slutpunkter genom att distribuera Azure Load Testing i ett virtuellt Azure-nätverk

I den här artikeln får du lära dig hur du testar privata programslutpunkter med Azure Load Testing. Du skapar en Azure Load Testing-resurs och gör det möjligt för den att generera belastning inifrån ditt virtuella nätverk (VNET-inmatning).

Den här funktionen möjliggör följande användningsscenarier:

  • Generera belastning till en slutpunkt som distribueras i ett virtuellt Azure-nätverk.
  • Generera belastning till en offentlig slutpunkt med åtkomstbegränsningar, till exempel begränsa klientens IP-adresser.
  • Generera belastning till en lokal tjänst som inte är offentligt tillgänglig och som är ansluten till Azure via ExpressRoute.

Läs mer om scenarier för distribution av Azure Load Testing i ditt virtuella nätverk.

Följande diagram innehåller en teknisk översikt:

Diagram som visar den tekniska översikten över VNET-inmatning i Azure Load Testing.

När du startar belastningstestet matar Azure Load Testing-tjänsten in följande Azure-resurser i det virtuella nätverk som innehåller programslutpunkten:

  • De virtuella testmotordatorerna. De här virtuella datorerna anropar programslutpunkten under belastningstestet.
  • En offentlig IP-adress.
  • En nätverkssäkerhetsgrupp (NSG).
  • En Azure Load Balancer.

Dessa resurser är tillfälliga och finns bara under belastningstestkörningen. Om du begränsar åtkomsten till ditt virtuella nätverk måste du konfigurera ditt virtuella nätverk för att möjliggöra kommunikation mellan dessa Azure Load Testing och de inmatade virtuella datorerna.

Anteckning

Stöd för virtuella nätverk för Azure Load Testing är tillgängligt i följande Azure-regioner: Australien, östra, USA, östra, USA, östra 2, Europa, norra, USA, södra centrala, Storbritannien, södra och USA, västra 2.

Förutsättningar

  • Ett befintligt virtuellt nätverk och ett undernät som ska användas med Azure Load Testing.
  • Det virtuella nätverket måste finnas i samma prenumeration och i samma region som Azure Load Testing-resursen.
  • Adressintervallet för det virtuella nätverket får inte överlappa med 172.29.0.0/30, det adressintervall som Azure Load Testing använder.
  • Du behöver rollen Nätverksdeltagare , eller överordnad för den här rollen, i det virtuella nätverket. Se Kontrollera åtkomst för en användare till Azure-resurser för att verifiera dina behörigheter.
  • Det undernät som du använder för Azure Load Testing måste ha tillräckligt med otilldelade IP-adresser för att hantera antalet belastningstestmotorer för testet. Läs mer om hur du konfigurerar testet för högskalig belastning.
  • Undernätet bör inte delegeras till någon annan Azure-tjänst. Den bör till exempel inte delegeras till Azure Container Instances (ACI). Läs mer om delegering av undernät.
  • Azure CLI version 2.2.0 eller senare (om du använder CI/CD). Kör az --version för att hitta den version som är installerad på datorn. Om du behöver installera eller uppgradera Azure CLI läser du Så här installerar du Azure CLI.

Konfigurera ditt virtuella nätverk

Om du vill testa privata slutpunkter behöver du ett befintligt virtuellt Azure-nätverk. Ditt virtuella nätverk bör ha minst ett undernät och tillåta åtkomst för trafik som kommer från Azure Load Testing-tjänsten.

Skapa ett undernät

När du distribuerar Azure Load Testing i ditt virtuella nätverk rekommenderar vi att du använder separata undernät för Azure Load Testing och för programslutpunkten. Med den här metoden kan du konfigurera åtkomstprinciper för nätverkstrafik specifikt för varje ändamål. Läs mer om hur du lägger till ett undernät i ett virtuellt nätverk.

Konfigurera trafikåtkomst

Azure Load Testing kräver både inkommande och utgående åtkomst för de inmatade virtuella datorerna i ditt virtuella nätverk. Om du planerar att begränsa trafikåtkomsten till ditt virtuella nätverk, eller om du redan använder en nätverkssäkerhetsgrupp, konfigurerar du nätverkssäkerhetsgruppen för det undernät där du distribuerar belastningstestet.

  1. Gå till Azure-portalen.

  2. Om du inte har någon NSG ännu följer du de här stegen för att skapa en nätverkssäkerhetsgrupp.

    Skapa nätverkssäkerhetsgruppen i samma region som det virtuella nätverket och associera den sedan med ditt undernät.

  3. Sök efter och välj din nätverkssäkerhetsgrupp.

  4. Välj Inkommande säkerhetsregler i det vänstra navigeringsfönstret.

  5. Välj + Lägg till för att lägga till en ny inkommande säkerhetsregel. Ange följande information för att skapa en ny regel och välj sedan Lägg till.

    Fält Värde
    Källa Tjänsttagg
    Källtjänsttagg BatchNodeManagement
    Källportintervall *
    Mål Alla
    Målportintervall 29876–29877
    Namn batch-node-management-inbound
    Beskrivning Skapa, uppdatera och ta bort Beräkningsinstanser för Azure Load Testing.
  6. Lägg till en andra säkerhetsregel för inkommande trafik med hjälp av följande information:

    Fält Värde
    Källa Tjänsttagg
    Källtjänsttagg AzureLoadTestingInstanceManagement
    Källportintervall *
    Mål Alla
    Målportintervall 8080
    Namn azure-load-testing-inbound
    Beskrivning Skapa, uppdatera och ta bort Beräkningsinstanser för Azure Load Testing.
  7. Välj Utgående säkerhetsregler i det vänstra navigeringsfönstret.

  8. Välj + Lägg till för att lägga till en ny utgående säkerhetsregel. Ange följande information för att skapa en ny regel och välj sedan Lägg till.

    Fält Värde
    Källa Alla
    Källportintervall *
    Mål Alla
    Målportintervall *
    Namn azure-load-testing-outbound
    Beskrivning Används för olika åtgärder som används för att samordna en belastningstest.

Konfigurera ditt belastningstestskript

De virtuella testmotordatorerna, som kör JMeter-skriptet, matas in i det virtuella nätverk som innehåller programslutpunkten. Nu kan du referera direkt till slutpunkten i JMX-filen med hjälp av den privata IP-adressen eller använda namnmatchning i nätverket.

För en slutpunkt med IP-adress 10.179.0.7 i ett virtuellt nätverk med undernätsintervallet 10.179.0.0/18 kan JMX-filen ha den här informationen:

<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Internal service homepage" enabled="true">
  <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="Service homepage" enabled="true">
    <collectionProp name="Arguments.arguments"/>
  </elementProp>
  <stringProp name="HTTPSampler.domain">10.179.0.7</stringProp>
  <stringProp name="HTTPSampler.port">8081</stringProp>
  <stringProp name="HTTPSampler.protocol"></stringProp>
  <stringProp name="HTTPSampler.contentEncoding"></stringProp>
  <stringProp name="HTTPSampler.path"></stringProp>
  <stringProp name="HTTPSampler.method">GET</stringProp>
</HTTPSamplerProxy>

Konfigurera belastningstestet

Om du vill inkludera privat värdbaserade slutpunkter i belastningstestet måste du konfigurera inställningarna för det virtuella nätverket för belastningstestet. Du kan konfigurera VNET-inställningarna i Azure Portal eller ange dem i YAML-testkonfigurationsfilen för CI/CD-pipelines.

Viktigt

När du distribuerar Azure Load Testing i ett virtuellt nätverk debiteras du ytterligare avgifter. Azure Load Testing distribuerar en Azure Load Balancer och en offentlig IP-adress i din prenumeration och det kan finnas en kostnad för genererad trafik. Mer information finns i prisinformationen för Virtual Network.

Konfigurera det virtuella nätverket i Azure Portal

Du kan ange VNET-konfigurationsinställningarna i guiden skapa/uppdatera belastningstest.

  1. Logga in på Azure Portal med autentiseringsuppgifterna för din Azure-prenumeration.

  2. Gå till din Azure Load Testing-resurs och välj Tester i det vänstra fönstret.

  3. Öppna guiden för att skapa/uppdatera belastningstestet på något av två sätt:

    • Välj + Skapa > ladda upp ett JMeter-skript om du vill skapa ett nytt test.

      Skärmbild som visar sidan Tester med knappen markerad för att skapa ett nytt test.

    • Välj ett befintligt test i listan och välj sedan Redigera.

      Skärmbild som visar sidan Tester med knappen markerad för att redigera ett test.

  4. På fliken Läs in väljer du Privat trafikläge och sedan ditt virtuella nätverk och undernät.

    Om du har flera undernät i det virtuella nätverket ska du välja det undernät som ska vara värd för de inmatade virtuella testmotordatorerna.

    Skärmbild som visar fliken Läs in för att skapa eller uppdatera ett belastningstest.

    Viktigt

    Kontrollera att du har tillräcklig behörighet för att hantera virtuella nätverk. Du behöver rollen Nätverksdeltagare .

  5. Granska eller fyll i information om belastningstestet. Följ de här stegen för att skapa eller hantera ett test.

  6. Välj Granska + skapa och sedan Skapa (eller Använd när du uppdaterar ett befintligt test).

    När belastningstestet startar matar Azure Load Testing in de virtuella testmotordatorerna i ditt virtuella nätverk och undernät. Testskriptet kan nu komma åt den privat värdbaserade programslutpunkten i ditt virtuella nätverk.

Konfigurera det virtuella nätverket för CI/CD-pipelines

Om du vill konfigurera belastningstestet med inställningarna för det virtuella nätverket uppdaterar du YAML-testkonfigurationsfilen.

  1. Öppna en terminal och använd Azure CLI för att logga in på din Azure-prenumeration:

    az login
    az account set --subscription <your-Azure-Subscription-ID>
    
  2. Hämta undernäts-ID:t och kopiera det resulterande värdet:

    az network vnet subnet show -g <your-resource-group> --vnet-name <your-vnet-name> --name <your-subnet-name> --query id
    
  3. Öppna yaml-testkonfigurationsfilen i din favoritredigerare.

  4. Lägg till egenskapen i subnetId konfigurationsfilen och ange det undernäts-ID som du kopierade tidigare:

    version: v0.1
    testName: SampleTest
    testPlan: SampleTest.jmx
    description: 'Load test the website home page'
    engineInstances: 1
    subnetId: <your-subnet-id>
    

    Mer information om YAML-konfigurationen finns i YAML-referens för testkonfiguration.

    Viktigt

    Kontrollera att du har tillräcklig behörighet för att hantera virtuella nätverk. Du behöver rollen Nätverksdeltagare .

  5. Spara YAML-konfigurationsfilen och checka in ändringarna till källkodslagringsplatsen.

  6. När CI/CD-arbetsflödet har utlösts startar belastningstestet och kan nu komma åt den privat värdbaserade programslutpunkten i ditt virtuella nätverk.

Felsökning

Det går inte att skapa eller uppdatera belastningstestet med Subscription not registered with Microsoft.Batch (ALTVNET001)

När du konfigurerar ett belastningstest i ett virtuellt nätverk måste prenumerationen registreras med Microsoft.Batch.

  1. Försök att skapa eller uppdatera belastningstestet igen efter några minuter.

  2. Om felet kvarstår följer du dessa steg för att registrera din prenumeration med Microsoft.Batch resursprovidern manuellt.

Det går inte att skapa eller uppdatera belastningstestet med Subnet is not in the Succeeded state (ALTVNET002)

Det undernät som du använder för belastningstestet är inte i Succeeded tillståndet och är inte redo att distribuera belastningstestet till det.

  1. Kontrollera undernätets tillstånd.

    Kör följande Azure CLI-kommando för att verifiera tillståndet. Resultatet ska vara Succeeded.

    az network vnet subnet show -g MyResourceGroup -n MySubnet --vnet-name MyVNet
    
  2. Lös eventuella problem med undernätet. Om du precis har skapat undernätet kontrollerar du tillståndet igen efter några minuter.

  3. Alternativt väljer du ett annat undernät för belastningstestet.

Det går inte att skapa eller uppdatera belastningstestet med Subnet is delegated to other service (ALTVNET003)

Det undernät som du använder för att distribuera belastningstestet kan inte delegeras till en annan Azure-tjänst. Ta bort den befintliga delegeringen eller välj ett annat undernät som inte har delegerats till en tjänst.

Läs mer om att lägga till eller ta bort en delegering av undernät.

Det går inte att starta belastningstestet med User doesn't have subnet/join/action permission on the virtual network (ALTVNET004)

Om du vill starta ett belastningstest måste du ha tillräcklig behörighet för att distribuera Azure Load Testing till det virtuella nätverket. Du behöver rollen Nätverksdeltagare , eller överordnad för den här rollen, i det virtuella nätverket.

  1. Se Kontrollera åtkomsten för en användare till Azure-resurser för att verifiera dina behörigheter.

  2. Följ de här stegen för att tilldela rollen Nätverksdeltagare till ditt konto.

Det går inte att skapa eller uppdatera belastningstestet med IPv6 enabled subnet not supported (ALTVNET005)

Azure Load Testing stöder inte IPv6-aktiverade undernät. Välj ett annat undernät som IPv6 inte är aktiverat för.

Det går inte att skapa eller uppdatera belastningstestet med NSG attached to subnet is not in Succeeded state (ALTVNET006)

Nätverkssäkerhetsgruppen (NSG) som är kopplad till undernätet är inte i tillståndet Succeeded .

  1. Kontrollera tillståndet för nätverkssäkerhetsgruppen.

    Kör följande Azure CLI-kommando för att verifiera tillståndet. Resultatet ska vara Succeeded.

    az network nsg show -g MyResourceGroup -n MyNsg
    
  2. Lös eventuella problem med NSG. Om du precis har skapat NSG:n eller undernätet kontrollerar du tillståndet igen efter några minuter.

  3. Alternativt väljer du en annan NSG.

Det går inte att skapa eller uppdatera belastningstestet med Route Table attached to subnet is not in Succeeded state (ALTVNET007)

Routningstabellen som är kopplad till undernätet är inte i tillståndet Succeeded .

  1. Kontrollera routningstabellens tillstånd.

    Kör följande Azure CLI-kommando för att verifiera tillståndet. Resultatet ska vara Succeeded.

    az network route-table show -g MyResourceGroup -n MyRouteTable
    
  2. Lös eventuella problem med routningstabellen. Om du precis har skapat routningstabellen eller undernätet kontrollerar du tillståndet igen efter några minuter.

  3. Alternativt väljer du en annan routningstabell.

Det går inte att skapa eller uppdatera belastningstestet med Inbound not allowed from AzureLoadTestingInstanceManagement service tag (ALTVNET008)

Inkommande åtkomst från AzureLoadTestingInstanceManagement tjänsttaggen till det virtuella nätverket tillåts inte.

Följ de här stegen för att aktivera trafikåtkomst för AzureLoadTestingInstanceManagement tjänsttaggen.

Det går inte att skapa eller uppdatera belastningstestet med Inbound not allowed from BatchNodeManagement service tag (ALTVNET009)

Inkommande åtkomst från BatchNodeManagement tjänsttaggen till det virtuella nätverket tillåts inte.

Följ de här stegen för att aktivera inkommande åtkomst för BatchNodeManagement tjänsttaggen.

Det går inte att skapa eller uppdatera belastningstestet med Route Table has next hop set for address prefix 0.0.0.0/0

Routningstabellen för undernätet har nästa hoppuppsättningstyp inställd på Virtuell installation för väg 0.0.0.0/0. Den här konfigurationen skulle orsaka asymmetrisk routning för nätverkspaket vid etablering av de virtuella datorerna i undernätet.

Utför någon av två åtgärder för att lösa det här felet:

Läs mer om trafikroutning för virtuella nätverk.

Det går inte att skapa eller uppdatera belastningstestet med Subnet is in a different subscription than resource (ALTVNET011)

Det virtuella nätverket finns inte i samma prenumeration och region som din Azure-belastningstestningsresurs. Flytta eller återskapa det virtuella Azure-nätverket eller Azure-belastningstestningsresursen till samma prenumeration och region.

Etableringen misslyckas med An azure policy is restricting engine deployment to your subscription (ALTVNET012)

En Azure-princip begränsar distributionen av belastningstestmotorn till din prenumeration. Kontrollera principbegränsningarna och försök igen.

Etableringen misslyckas med Engines could not be deployed due to an error in subnet configuration (ALTVNET013)

Det gick inte att distribuera instanserna av belastningstestmotorn på grund av ett fel i undernätskonfigurationen. Verifiera undernätskonfigurationen. Om problemet kvarstår skapar du en supportbegäran tillsammans med testkörnings-ID:t.

  1. Kontrollera undernätets tillstånd.

    Kör följande Azure CLI-kommando för att verifiera tillståndet. Resultatet ska vara Succeeded.

    az network vnet subnet show -g MyResourceGroup -n MySubnet --vnet-name MyVNet
    
  2. Lös eventuella problem med undernätet. Om du precis har skapat undernätet kontrollerar du tillståndet igen efter några minuter.

  3. Om problemet kvarstår öppnar du en kundsupportbegäran online.

    Ange körnings-ID:t för belastningstestet i supportbegäran.

Det går inte att starta belastningstestet med Subnet has {0} free IPs, {1} more free IP(s) required to run {2} engine instance load test (ALTVNET014)

Det undernät som du använder för Azure Load Testing måste ha tillräckligt med otilldelade IP-adresser för att hantera antalet belastningstestmotorer för testet.

Följ de här stegen för att uppdatera undernätsinställningarna och öka IP-adressintervallet.

Nästa steg