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 belastning till en offentlig slutpunkt med åtkomstbegränsningar, till exempel begränsningar för klient-IP-adresser.
- Generera belastning till en lokal tjänst som inte är tillgänglig offentligt, men 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:
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.
- I undernätet ska inte ha IPv6 aktiverat. Azure Load Testing stöder inte IPv6-aktiverade undernät. Läs mer om IPv6 för Azure Virtual Network
- 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 Portal.
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:
Logga in på Azure-portalen.
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.
Välj Utgående säkerhetsregler i det vänstra navigeringsfältet.
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. 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 det virtuella nätverket 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 virtuellt nätverk.
Konfigurera det virtuella nätverket i Azure Portal
Du kan ange konfigurationsinställningarna för virtuella nätverk i guiden skapa/uppdatera belastningstest.
Logga in på Azure Portal med hjälp av autentiseringsuppgifterna för din Azure-prenumeration.
Gå till din Azure Load Testing-resurs och välj Tester i den vänstra rutan.
Ö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.
Välj ett befintligt test i listan och välj sedan Redigera.
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.
Viktigt!
Kontrollera att du har tillräcklig behörighet för att hantera virtuella nätverk. Du behöver rollen Nätverksdeltagare .
(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.
Granska eller fyll i information om belastningstestet. Följ de här stegen för att skapa eller hantera ett test.
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.
Ö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>
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
Öppna YAML-testkonfigurationsfilen i din favoritredigerare.
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
tillTrue
. 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 .
Spara YAML-konfigurationsfilen och checka in ändringarna till källkodslagringsplatsen.
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
Information om hur du felsöker problem med att skapa och köra belastningstester mot privata slutpunkter finns i felsöka privata slutpunktstester.