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

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

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 inläsning till en offentlig slutpunkt med åtkomstbegränsningar, till exempel att 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 that shows the Azure Load Testing virtual network injection technical overview.

När du startar belastningstestet matar Azure Load Testing-tjänsten in följande Azure-resurser i det virtuella nätverket 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 när belastningstestet körs. Om du har begränsningar för distributionen av en offentlig IP-adress, En Azure-lastbalanserare eller en nätverkssäkerhetsgrupp i undernätet kan du inaktivera distributionen av dessa resurser. Mer information finns i Konfigurera belastningstestet.

Om du begränsar åtkomsten till ditt virtuella nätverk måste du konfigurera ditt virtuella nätverk för att aktivera kommunikation mellan dessa Azure Load Testing och de inmatade virtuella datorerna.

Förutsättningar

  • Ditt Azure-konto har rollen Nätverksdeltagare , eller en överordnad av den här rollen, i det virtuella nätverket. Se Kontrollera åtkomsten 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ög skalbar 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 kan du läsa Installera Azure CLI.

Konfigurera ett virtuellt nätverk

Om du vill testa privata slutpunkter ansluter du Azure Load Testing till ett virtuellt Azure-nätverk. Det virtuella nätverket bör ha minst ett undernät och tillåta utgående trafik till Azure Load Testing-tjänsten.

Om du inte har något virtuellt nätverk än följer du de här stegen för att skapa ett virtuellt Azure-nätverk i Azure-portalen.

Viktigt!

Det virtuella nätverket måste finnas i samma prenumeration och i samma region som belastningstestningsresursen.

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 principer för åtkomst till nätverkstrafik specifikt för varje syfte. Läs mer om hur du lägger till ett undernät i ett virtuellt nätverk.

(Valfritt) Konfigurera trafikregler

Azure Load Testing kräver att de inmatade virtuella datorerna i det virtuella nätverket tillåts utgående åtkomst till Azure Load Testing-tjänsten. Som standard är utgående åtkomst redan tillåten när du skapar ett virtuellt nätverk.

Om du planerar att ytterligare begränsa åtkomsten till ditt virtuella nätverk med en nätverkssäkerhetsgrupp, eller om du redan har en nätverkssäkerhetsgrupp, måste du konfigurera en utgående säkerhetsregel för att tillåta trafik från de virtuella testmotordatorerna till Azure Load Testing-tjänsten.

Så här konfigurerar du utgående åtkomst för Azure Load Testing:

  1. Logga in på Azure-portalen.

  2. Gå till nätverkssäkerhetsgruppen.

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

    Skapa NSG:n i samma region som ditt virtuella nätverk och associera den sedan med ditt undernät.

  3. Välj Utgående säkerhetsregler i det vänstra navigeringsfältet.

    Screenshot that shows the network security group overview page in the Azure portal, highlighting Outbound security rules.

  4. 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.

    Fält Värde
    Source Alla
    Källportintervall *
    Mål Alla
    Målportintervall *
    Namn azure-load-testing-outbound
    Beskrivning Används för olika åtgärder som rör orkestrering av en belastningstest.
  5. Välj Lägg till för att lägga till den utgående säkerhetsregeln i nätverkssäkerhetsgruppen.

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 inställningarna för virtuella nätverk i Azure-portalen 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 virtuellt nätverk.

Konfigurera det virtuella nätverket i Azure-portalen

Du kan ange konfigurationsinställningarna för virtuella nätverk i guiden skapa/uppdatera belastningstest.

  1. Logga in på Azure-portalen med hjälp av autentiseringsuppgifterna för din Azure-prenumeration.

  2. Gå till din Azure Load Testing-resurs och välj Tester i den vänstra rutan.

  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.

      Screenshot that shows the Tests page, highlighting the button for creating a new test.

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

      Screenshot that shows the Tests page, highlighting the button for editing a 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 måste du välja det undernät som ska vara värd för de inmatade virtuella testmotordatorerna.

    Screenshot that shows the Load tab for creating or updating a load test.

    Viktigt!

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

  5. (Valfritt) Kontrollera Inaktivera offentlig IP-distribution om du inte vill distribuera en offentlig IP-adress, lastbalanserare och nätverkssäkerhetsgrupp i undernätet.

    När du väljer det här alternativet kontrollerar du att det finns en alternativ mekanism som Azure NAT Gateway, Azure Firewall eller en virtuell nätverksinstallation (NVA) för att aktivera utgående trafikroutning från undernätet.

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

  7. 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 subnetId i 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>
    publicIPDisabled: False
    

    Du kan också ange egenskapen publicIPDisabled till True. 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 det virtuella nätverket.

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 antingen 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 uppdatera eller starta belastningstestet med User doesn't have subnet/join/action permission on the virtual network (ALTVNET004)

Om du vill uppdatera eller 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 en överordnad av 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 ansluten till undernätet är inte i tillståndet Succeeded .

  1. Kontrollera NSG:ns tillstånd.

    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 nätverkssäkerhetsgruppen. 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 just 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:

  • Använd ett annat undernät som inte har anpassade vägar.
  • Ändra routningstabellen för undernätet och ange nästa hopptyp för väg 0.0.0.0/0 till Internet.

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-belastningstestresursen 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 dina principbegränsningar och försök igen. Om du har principbegränsningar för distributionen av den offentliga IP-adressen, Azure-lastbalanseraren eller nätverkssäkerhetsgruppen kan du inaktivera distributionen av dessa resurser. Se Konfigurera belastningstestet.

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

Det gick inte att distribuera instanserna av lasttestmotorn på grund av ett fel i undernätskonfigurationen. Verifiera konfigurationen av undernätet. Om problemet kvarstår skapar du ett ärende med support tillsammans med körnings-ID:t för testet.

  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 belastningstestkörnings-ID:t 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 inställningarna för undernätet och öka IP-adressintervallet.

Det går inte att starta belastningstestet med Management Lock is enabled on Resource Group of VNET (ALTVNET015)

Om det finns ett lås på resursgruppen som innehåller det virtuella nätverket kan tjänsten inte mata in de virtuella testmotordatorerna i det virtuella nätverket. Ta bort hanteringslåset innan du kör belastningstestet. Lär dig hur du konfigurerar lås i Azure-portalen.

Det går inte att starta belastningstestet med Insufficient public IP address quota in VNET subscription (ALTVNET016)

När du startar belastningstestet matar Azure Load Testing in följande Azure-resurser i det virtuella nätverket 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.

Se till att du har en kvot för minst en offentlig IP-adress i din prenumeration som ska användas i belastningstestet.

Det går inte att starta belastningstestet med Subnet with name "AzureFirewallSubnet" cannot be used for load testing (ALTVNET017)

Undernätet AzureFirewallSubnet är reserverat och du kan inte använda det för Azure Load Testing. Välj ett annat undernät för belastningstestet.

Nästa steg