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.

Creare rapidamente un test di carico per l'applicazione Web usando un URL e senza conoscere in precedenza gli strumenti di test. Test di carico di Azure astrae la complessità e l'infrastruttura per eseguire il test di carico su larga scala.

Per scenari di test di carico più avanzati, è possibile creare un test di carico riutilizzando uno script di test Apache JMeter esistente, uno strumento di carico e prestazioni open source diffuso. Ad esempio, il piano di test può essere costituito da più richieste di applicazioni, si vogliono chiamare endpoint non HTTP o si usano dati e parametri di input per rendere il test più dinamico.

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

Per acquisire in anticipo le regressioni delle prestazioni dell'applicazione, aggiungere il test di carico nel flusso di lavoro di integrazione continua e distribuzione continua (CI/CD). Sfruttare i criteri di test non superati per definire e convalidare i requisiti di qualità dell'applicazione.

Test di carico di Azure consente di testare gli endpoint o le applicazioni dell'applicazione privati ospitati 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.

Diagram that shows the Azure Load Testing architecture.

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 per Test di carico di Azure.

Scenari di utilizzo

Test di carico di Azure usa Apache JMeter e supporta un'ampia gamma di tipi di applicazioni e protocolli di comunicazione. L'elenco seguente fornisce esempi di tipi di applicazione o endpoint supportati:

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

Usando i plug-in JMeter nello script di test, è possibile caricare più tipi di applicazioni.

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

Test di carico di Azure attualmente non supporta altri framework di test rispetto ad Apache JMeter.

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

I problemi di prestazioni rimangono spesso non rilevati fino a quando non viene caricata un'applicazione. È possibile avviare un test di carico su larga scala nel portale di Azure per imparare prima il comportamento dell'applicazione in condizioni di stress. Durante l'esecuzione del test, il dashboard test di carico di Azure fornisce un aggiornamento 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 le metriche dettagliate delle risorse dei componenti dell'applicazione Azure. Introduzione a un'esercitazione per identificare i colli di bottiglia delle prestazioni per le applicazioni ospitate in Azure.

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

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

Abilitare test di carico automatizzati

È possibile integrare Test di carico di Azure nella pipeline CI/CD in punti significativi durante il ciclo di vita di sviluppo. Ad esempio, è possibile eseguire automaticamente un test di carico alla fine di ogni sprint o in un ambiente di staging per convalidare una build finale candidata.

Introduzione all'aggiunta di test di carico al flusso di lavoro CI/CD per identificare rapidamente la riduzione delle prestazioni dell'applicazione sotto carico.

Nella configurazione di test specificare i criteri di esito negativo del test per intercettare le prestazioni dell'applicazione o le regressioni di stabilità all'inizio del ciclo di sviluppo. Ad esempio, ricevere un avviso quando il tempo medio di risposta o il numero di errori supera una soglia specifica.

Test di carico di Azure arresterà automaticamente un test di carico automatizzato in risposta a condizioni di errore specifiche. In alternativa, è anche possibile usare il listener AutoStop 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. Informazioni su come configurare l'arresto automatico per il test di carico.

È possibile attivare Test di carico di Azure da flussi di lavoro di Azure Pipelines o di GitHub Actions.

Come funziona il test di carico di Azure?

Test di carico di Azure usa Apache JMeter per l'esecuzione di test di carico. È possibile usare i plug-in Apache JMeter da https://jmeter-plugins.org o caricare il proprio codice plug-in. Test di carico di Azure supporta tutti i protocolli di comunicazione supportati da JMeter. Ad esempio, per testare il carico di una connessione al database o una coda di messaggi. Altre informazioni sulle funzionalità di Apache JMeter supportate.

I motori di test di 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 JMeter 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 JMeter. Per aumentare il numero di istanze del test di carico, è possibile configurare il numero di motori di test.

È possibile ospitare l'applicazione sotto carico ovunque: in Azure, in locale o in altri cloud. Per eseguire un test di carico per i servizi senza endpoint pubblico, distribuire Test di carico di Azure in una rete virtuale.

Durante il test di carico, Test di carico di Azure raccoglie le metriche delle risorse seguenti e le visualizza in un dashboard:

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

  • Le metriche lato server forniscono informazioni sui componenti dell'applicazione Azure. Test di carico di Azure si integra con Monitoraggio di Azure, tra cui Application Insights e Informazioni dettagliate sui contenitori, per acquisire i dettagli dai servizi di Azure. A seconda del tipo di servizio, sono disponibili metriche diverse. Ad esempio, le metriche possono essere per il numero di letture del database, il tipo di risposte HTTP o l'utilizzo delle risorse del contenitore.

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

Il servizio crittografa automaticamente tutti i dati archiviati nella risorsa di test di carico con chiavi gestite da Microsoft (chiavi gestite dal servizio). Ad esempio, questi dati includono lo script Apache JMeter, i file di configurazione e altro ancora. In alternativa, è anche 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 o elabora i dati dei clienti all'esterno dell'area in cui si distribuisce l'istanza del servizio.

Passaggi successivi

Iniziare a usare Test di carico di Azure: