Condividi tramite


Cos'è Test di carico di Azure?

Test di carico di Azure è un servizio di test di carico completamente gestito che consente di generare un carico su larga scala. Il servizio simula il traffico per le tue applicazioni, indipendentemente dalla posizione in cui sono ospitate. Sviluppatori, tester e responsabili del controllo di qualità possono usarlo per ottimizzare le prestazioni, la scalabilità o la capacità delle applicazioni.

È possibile creare rapidamente un test di carico per un'applicazione Web usando un URL e anche senza disporre di conoscenze pregresse sugli strumenti di test. Test di carico di Azure astrae infatti la complessità e l'infrastruttura per eseguire il test di carico su larga scala.

In presenza di scenari di test di carico più avanzati, è anche possibile creare un test di carico caricando uno script di test. Test di carico di Azure supporta l'esecuzione di test basati su Apache JMeter o di test basati su Locust. Ad esempio, un piano di test può essere costituito da più richieste di applicazioni oppure è possibile chiamare endpoint non HTTP o usare dati e parametri di input per rendere il test più dinamico.

Se un'applicazione è ospitata in Azure, Test di carico di Azure raccoglie metriche dettagliate sulle risorse per consentire di identificare eventuali colli di bottiglia delle prestazioni nei componenti dell'applicazione Azure.

Per individuare in anticipo eventuali regressioni nelle prestazioni dell'applicazione, aggiungere il test di carico nel flusso di lavoro di integrazione continua e recapito continuo (CI/CD). Applicare quindi i criteri di esito negativo del test per definire e convalidare i requisiti di qualità dell'applicazione.

Test di carico di Azure consente di testare endpoint di applicazioni private o applicazioni ospitate in locale. Per altre informazioni, vedere gli scenari per la distribuzione di Test di carico di Azure in una rete virtuale.

Il diagramma seguente illustra una panoramica dell'architettura di Test di carico di Azure.

Diagramma che mostra l'architettura di Test di carico di Azure.

Nota

L'immagine di panoramica mostra come Test di carico di Azure usa Monitoraggio di Azure per acquisire le metriche per i componenti dell'app. Vedere altre informazioni sui tipi di risorse di Azure supportati.

Altre informazioni sui concetti chiave di Test di carico di Azure.

Scenari di utilizzo

Test di carico di Azure può usare i framework dei test Apache JMeter o Locust e supporta un'ampia gamma di tipi di applicazioni e protocolli di comunicazione. Nell'elenco seguente sono riportati tipi di applicazione o di endpoint di esempio supportati:

  • Applicazioni Web, tramite HTTP o HTTPS
  • API REST
  • Database tramite JDBC
  • Endpoint basati su TCP

Per JMeter, è possibile usare plug-in JMeter nello script di test ed eseguire test di carico di più tipi di applicazioni.

Se si sceglie l'esperienza di test rapido, è possibile testare un singolo endpoint HTTP basato su URL. Caricando uno script JMeter, inoltre, è possibile usare tutti i protocolli di comunicazione supportati da JMeter.

Attualmente, Test di carico di Azure non supporta altri framework di test oltre ad Apache JMeter e Locust.

Identificare colli di bottiglia delle prestazioni usando test di carico su larga scala

I problemi di prestazioni vengono spesso rilevati solo nel momento in cui un'applicazione si trova in condizioni di carico. È possibile avviare un test di carico su larga scala nel portale di Azure per capire in anticipo come si comporta l'applicazione in condizioni di stress. Durante l'esecuzione del test, il dashboard di Test di carico di Azure fornisce aggiornamenti in tempo reale delle metriche sul lato client e sul lato server.

Al termine del test di carico, è possibile usare il dashboard per analizzare i risultati dei test e identificare i colli di bottiglia delle prestazioni. Per le applicazioni ospitate in Azure, il dashboard mostra metriche dettagliate sulle risorse dei componenti dell'applicazione Azure. È possibile iniziare con un'esercitazione per identificare i colli di bottiglia delle prestazioni nelle applicazioni ospitate in Azure.

Test di carico di Azure mantiene una cronologia delle esecuzioni dei test e consente di confrontare visivamente più esecuzioni per rilevare eventuali regressioni delle prestazioni nel tempo.

È anche possibile scaricare i risultati del test per analizzarli in uno strumento di terze parti.

Abilitare test di carico automatizzati

È possibile integrare Test di carico di Azure nella pipeline di integrazione continua/recapito continuo in corrispondenza di punti significativi del ciclo di vita di sviluppo. Ad esempio, è possibile eseguire automaticamente un test di carico alla fine di ogni sprint o in un ambiente di gestione temporanea per convalidare la build di una versione finale candidata.

Iniziare aggiungendo un test di carico al flusso di lavoro di integrazione continua e recapito continuo per identificare rapidamente la riduzione del livello delle prestazioni dell'applicazione in condizioni di carico.

Nella configurazione di test specificare i criteri di esito negativo del test per identificare un'eventuale regressione delle prestazioni o della stabilità dell'applicazione all'inizio del ciclo di sviluppo. Ad esempio, è possibile ricevere un avviso ogni volta che il tempo medio di risposta o il numero di errori supera una determinata soglia.

Test di carico di Azure arresterà automaticamente un test di carico automatizzato in risposta a specifiche condizioni di errore. In alternativa, è possibile usare il listener di arresto automatico nello script Apache JMeter. L'arresto automatico impedisce l'esecuzione di test non superati, ad esempio a causa di un URL dell'endpoint configurato in modo non corretto. A questo scopo, sono disponibili informazioni su come è possibile configurare l'arresto automatico per il test di carico.

È possibile attivare Test di carico di Azure da Azure Pipelines o da flussi di lavoro di GitHub Actions oppure usare l'interfaccia della riga di comando di Azure per l'integrazione con altri strumenti di integrazione continua.

Come funziona Test di carico di Azure?

Test di carico di Azure usa Apache JMeter o Locust per l'esecuzione dei test di carico. È inoltre possibile usare plug-in Apache JMeter da https://jmeter-plugins.org oppure caricare un codice di plug-in personalizzato. Test di carico di Azure supporta tutti i protocolli di comunicazione supportati da JMeter. È possibile, ad esempio, usare Test di carico di Azure per eseguire il test di carico di una connessione di database o di una coda di messaggi. A questo scopo, sono disponibili informazioni sulle funzionalità di Apache JMeter supportate.

I motori di test disponibili in Test di carico di Azure astraggono l'infrastruttura necessaria per l'esecuzione di un test di carico su larga scala. Ogni istanza del motore di test esegue lo script di test specificato per simulare un numero elevato di utenti virtuali che accedono contemporaneamente agli endpoint dell'applicazione. Quando si crea un test di carico basato su un URL (test rapido), Test di carico di Azure genera automaticamente uno script di test. Per aumentare il numero di istanze del test di carico, è possibile configurare il numero di motori di test.

È possibile ospitare l'applicazione in condizioni di carico in Azure, in locale o in altri cloud. Per eseguire un test di carico per servizi che non dispongono di un endpoint pubblico, distribuire Test di carico di Azure in una rete virtuale.

Durante il test di carico, vengono raccolte e visualizzate in un dashboard le metriche delle risorse seguenti:

  • Le metriche sul lato client forniscono i dettagli restituiti dal motore di test, che includono il numero di utenti virtuali, il tempo di risposta della richiesta o il numero di richieste al secondo.

  • Le metriche sul lato server forniscono informazioni sui componenti dell'applicazione Azure. Test di carico di Azure si integra con Monitoraggio di Azure, nonché con Application Insights e Informazioni dettagliate contenitore, per acquisire dettagli dai servizi di Azure. A seconda del tipo di servizio, sono disponibili metriche diverse. Possono essere disponibili, ad esempio, metriche relative al numero di letture del database, al tipo di risposte HTTP o all'utilizzo delle risorse del contenitore.

Test di carico di Azure incorpora automaticamente le procedure consigliate per la rete di Azure per garantire che i test vengano eseguiti in modo sicuro e affidabile. I test di carico, inoltre, vengono arrestati automaticamente nel momento in cui gli endpoint dell'applicazione o i componenti di Azure avviano richieste di limitazione.

Il servizio crittografa automaticamente tutti i dati archiviati nella risorsa del test di carico con le chiavi gestite da Microsoft (chiavi gestite dal servizio). Questi dati includono, ad esempio, lo script del test Apache JMeter o Locust, i file di configurazione e altro ancora. In alternativa, è possibile configurare il servizio per l'uso di chiavi gestite dal cliente.

Residenza dei dati nell'area geografica

Test di carico di Azure non archivia né elabora i dati dei clienti all'esterno dell'area geografica in cui viene distribuita l'istanza del servizio.

Iniziare a usare Test di carico di Azure: