Testare gli endpoint privati distribuendo Test di carico di Azure in una rete virtuale di Azure
Questo articolo illustra come testare gli endpoint dell'applicazione privata con Test di carico di Azure. Creare una risorsa test di carico di Azure e abilitarla per generare il carico dall'interno della rete virtuale (inserimento della rete virtuale).
Questa funzionalità consente gli scenari di utilizzo seguenti:
- Generazione del carico in un endpoint distribuito in una rete virtuale di Azure.
- Generazione del carico in un endpoint pubblico con restrizioni di accesso, ad esempio la limitazione degli indirizzi IP client.
- Generazione del carico in un servizio locale, non accessibile pubblicamente, connesso ad Azure tramite ExpressRoute.
Altre informazioni sugli scenari per la distribuzione di Test di carico di Azure nella rete virtuale.
Il diagramma seguente offre una panoramica tecnica:
Quando si avvia il test di carico, il servizio Test di carico di Azure inserisce le risorse di Azure seguenti nella rete virtuale che contiene l'endpoint dell'applicazione:
- Macchine virtuali del motore di test. Queste macchine virtuali richiamano l'endpoint dell'applicazione durante il test di carico.
- Un indirizzo IP pubblico.
- Un gruppo di sicurezza di rete (NSG).
- Un servizio di bilanciamento del carico di Azure.
Queste risorse sono temporanee ed esistono solo durante l'esecuzione del test di carico. Se sono presenti restrizioni per la distribuzione di un indirizzo IP pubblico, un servizio di bilanciamento del carico di Azure o un gruppo di sicurezza di rete nella subnet, è possibile disabilitare la distribuzione di queste risorse. Per altre informazioni, vedere Configurare il test di carico.
Se si limita l'accesso alla rete virtuale, è necessario configurare la rete virtuale per abilitare la comunicazione tra questi test di carico di Azure e le macchine virtuali inserite.
Prerequisiti
- L'account Azure ha il ruolo di Collaboratore rete o un elemento padre di questo ruolo nella rete virtuale. Vedere Controllare l'accesso per un utente alle risorse di Azure per verificare le autorizzazioni.
- La subnet usata per Test di carico di Azure deve avere un numero sufficiente di indirizzi IP non assegnati per supportare il numero di motori di test di carico per il test. Altre informazioni sulla configurazione del test per il carico su larga scala.
- La subnet non deve essere delegata ad altri servizi di Azure. Ad esempio, non deve essere delegato a Istanze di Azure Container (ACI). Altre informazioni sulla delega della subnet.
- La subnet non deve avere IPv6 abilitato. Test di carico di Azure non supporta le subnet abilitate per IPv6. Altre informazioni su IPv6 per Azure Rete virtuale
- Interfaccia della riga di comando di Azure versione 2.2.0 o successiva (se si usa CI/CD). Eseguire
az --version
per trovare la versione installata nel computer locale. Se è necessario eseguire l'installazione o l'aggiornamento, vedere Come installare l'interfaccia della riga di comando di Azure.
Configurare la rete virtuale
Per testare gli endpoint privati, è necessario connettere Test di carico di Azure a una rete virtuale di Azure. La rete virtuale deve avere almeno una subnet e consentire il traffico in uscita al servizio Test carico di Azure.
Se non si ha ancora una rete virtuale, seguire questa procedura per creare una rete virtuale di Azure nel portale di Azure.
Importante
La rete virtuale deve trovarsi nella stessa sottoscrizione e nella stessa area della risorsa di test di carico.
Creare una subnet
Quando si distribuisce Test di carico di Azure nella rete virtuale, è consigliabile usare subnet separate per test di carico di Azure e per l'endpoint dell'applicazione. Questo approccio consente di configurare i criteri di accesso al traffico di rete in modo specifico per ogni scopo. Altre informazioni su come aggiungere una subnet a una rete virtuale.
(Facoltativo) Configurare le regole del traffico
Test di carico di Azure richiede che le macchine virtuali inserite nella rete virtuale siano autorizzate all'accesso in uscita al servizio Test carico di Azure. Per impostazione predefinita, quando si crea una rete virtuale, l'accesso in uscita è già consentito.
Se si prevede di limitare ulteriormente l'accesso alla rete virtuale con un gruppo di sicurezza di rete o se si dispone già di un gruppo di sicurezza di rete, è necessario configurare una regola di sicurezza in uscita per consentire il traffico dalle macchine virtuali del motore di test al servizio Test di carico di Azure.
Per configurare l'accesso in uscita per Test carico di Azure:
Accedere al portale di Azure.
Passare al gruppo di sicurezza di rete.
Se non si ha ancora un gruppo di sicurezza di rete, seguire questa procedura per creare un gruppo di sicurezza di rete.
Creare il gruppo di sicurezza di rete nella stessa area della rete virtuale e quindi associarlo alla subnet.
Selezionare Regole di sicurezza in uscita nel riquadro di spostamento sinistro.
Selezionare + Aggiungi per aggiungere una nuova regola di sicurezza in uscita. Immettere le informazioni seguenti per creare una nuova regola.
Campo Valore Origine Any Intervalli porte di origine * Destinazione Any Intervalli porte di destinazione * Nome azure-load-testing-outbound Descrizione Usato per varie operazioni coinvolte nell'orchestrazione di un test di carico. Selezionare Aggiungi per aggiungere la regola di sicurezza in uscita al gruppo di sicurezza di rete.
Configurare lo script di test di carico
Le macchine virtuali del motore di test, che eseguono lo script JMeter, vengono inserite nella rete virtuale che contiene l'endpoint dell'applicazione. È ora possibile fare riferimento direttamente all'endpoint nel file JMX usando l'indirizzo IP privato o usare la risoluzione dei nomi nella rete.
Ad esempio, per un endpoint con indirizzo IP 10.179.0.7, in una rete virtuale con intervallo di subnet 10.179.0.0/18, il file JMX potrebbe avere queste informazioni:
<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>
Configurare il test di carico
Per includere endpoint ospitati privatamente nel test di carico, è necessario configurare le impostazioni della rete virtuale per il test di carico. È possibile configurare le impostazioni della rete virtuale nella portale di Azure o specificarle nel file di configurazione del test YAML per le pipeline CI/CD.
Importante
Quando si distribuisce Test di carico di Azure in una rete virtuale, verranno addebitati costi aggiuntivi. Test di carico di Azure distribuisce un servizio di bilanciamento del carico di Azure e un indirizzo IP pubblico nella sottoscrizione e potrebbe esserci un costo per il traffico generato. Per altre informazioni, vedere le informazioni sui prezzi di Rete virtuale.
Configurare la rete virtuale nel portale di Azure
È possibile specificare le impostazioni di configurazione della rete virtuale nella creazione/aggiornamento guidato del test di carico.
Accedere al portale di Azure usando le credenziali della sottoscrizione di Azure.
Passare alla risorsa Test di carico di Azure e selezionare Test nel riquadro sinistro.
Aprire la creazione/aggiornamento guidato test di carico in uno dei due modi seguenti:
Selezionare + Crea > carica uno script JMeter, se si vuole creare un nuovo test.
Selezionare un test esistente nell'elenco e quindi selezionare Modifica.
Nella scheda Carica selezionare Modalità traffico privato e quindi selezionare la rete virtuale e la subnet.
Se nella rete virtuale sono presenti più subnet, assicurarsi di selezionare la subnet che ospiterà le macchine virtuali del motore di test inserite.
Importante
Assicurarsi di disporre di autorizzazioni sufficienti per la gestione delle reti virtuali. È necessario il ruolo Collaboratore rete.
(Facoltativo) Selezionare Disabilita distribuzione ip pubblico se non si vuole distribuire un indirizzo IP pubblico, un servizio di bilanciamento del carico e un gruppo di sicurezza di rete nella subnet.
Quando si seleziona questa opzione, assicurarsi che sia presente un meccanismo alternativo, ad esempio gateway NAT di Azure, Firewall di Azure o un'appliance virtuale di rete per abilitare il routing del traffico in uscita dalla subnet.
Esaminare o compilare le informazioni sul test di carico. Seguire questa procedura per creare o gestire un test.
Selezionare Rivedi e crea e quindi Crea (o Applica, durante l'aggiornamento di un test esistente).
All'avvio del test di carico, Test di carico di Azure inserisce le macchine virtuali del motore di test nella rete virtuale e nella subnet. Lo script di test può ora accedere all'endpoint dell'applicazione ospitata privatamente nella rete virtuale.
Configurare la rete virtuale per le pipeline CI/CD
Per configurare il test di carico con le impostazioni della rete virtuale, aggiornare il file di configurazione del test YAML.
Aprire un terminale e usare l'interfaccia della riga di comando di Azure per accedere alla sottoscrizione di Azure:
az login az account set --subscription <your-Azure-Subscription-ID>
Recuperare l'ID subnet e copiare il valore risultante:
az network vnet subnet show -g <your-resource-group> --vnet-name <your-vnet-name> --name <your-subnet-name> --query id
Aprire il file di configurazione del test YAML nell'editor preferito.
Aggiungere la
subnetId
proprietà al file di configurazione e specificare l'ID subnet copiato in precedenza:version: v0.1 testName: SampleTest testPlan: SampleTest.jmx description: 'Load test the website home page' engineInstances: 1 subnetId: <your-subnet-id> publicIPDisabled: False
Facoltativamente, è possibile impostare la
publicIPDisabled
proprietà suTrue
. Per altre informazioni sulla configurazione YAML, vedere Informazioni di riferimento su YAML per la configurazione di test.Importante
Assicurarsi di disporre di autorizzazioni sufficienti per la gestione delle reti virtuali. È necessario il ruolo Collaboratore rete.
Salvare il file di configurazione YAML ed eseguire il commit delle modifiche nel repository del codice sorgente.
Dopo l'avvio dei trigger del flusso di lavoro CI/CD, il test di carico può ora accedere all'endpoint dell'applicazione ospitata privatamente nella rete virtuale.
Risoluzione dei problemi
Per risolvere i problemi relativi alla creazione e all'esecuzione di test di carico su endpoint privati, vedere come risolvere i problemi relativi ai test degli endpoint privati.
Passaggi successivi
- Altre informazioni sugli scenari per la distribuzione di Test di carico di Azure in una rete virtuale.
- Informazioni su come risolvere i problemi relativi ai test degli endpoint privati.