Concetti chiave per i nuovi utenti di Test di carico di Azure

Informazioni sui concetti chiave e sui componenti di Test di carico di Azure. Queste informazioni consentono di configurare in modo più efficace un test di carico per identificare i problemi di prestazioni nell'applicazione.

Concetti generali del test di carico

Informazioni sui concetti chiave relativi all'esecuzione di test di carico.

Utenti virtuali

Un utente virtuale esegue un test case specifico sull'applicazione server e viene eseguito indipendentemente da altri utenti virtuali. È possibile usare più utenti virtuali per simulare connessioni simultanee all'applicazione server.

Apache JMeter si riferisce anche agli utenti virtuali come thread. Nello script di test di JMeter, un elemento del gruppo di thread consente di specificare il pool di utenti virtuali. Informazioni sui gruppi di thread nella documentazione di Apache JMeter.

Il numero totale di utenti virtuali per il test di carico dipende dal numero di utenti virtuali nello script di test e dal numero di istanze del motore di test.

La formula è: Totale utenti virtuali = (utenti virtuali nel file JMX) * (numero di istanze del motore di test).

È possibile ottenere il numero di utenti virtuali di destinazione configurando il numero di istanze del motore di test, il numero di utenti virtuali nello script di test o una combinazione di entrambi.

Tempo di avvio

Il tempo di avvio è il tempo necessario per raggiungere il numero completo di utenti virtuali per il test di carico. Se il numero di utenti virtuali è 20 e il tempo di avvio è di 120 secondi, ci vogliono 120 secondi per arrivare a tutti i 20 utenti virtuali. Ogni utente virtuale inizierà 6 (120/20) secondi dopo l'avvio dell'utente precedente.

Ora di risposta

Il tempo di risposta di una singola richiesta, o tempo trascorso in JMeter, è il tempo totale da poco prima dell'invio della richiesta a subito dopo la ricezione dell'ultima risposta. Il tempo di risposta non include il tempo necessario per il rendering della risposta. Qualsiasi codice client, ad esempio JavaScript, non viene elaborato durante il test di carico.

Latenza

La latenza di una singola richiesta è il tempo totale appena prima dell'invio della richiesta a subito dopo la ricezione della prima risposta. La latenza include tutte le elaborazioni necessarie per assemblare la richiesta e assemblare la prima parte della risposta.

Richieste al secondo (RPS)

Le richieste al secondo (RPS) o velocità effettiva sono il numero totale di richieste all'applicazione server generata dal test di carico al secondo.

La formula è: RPS = (numero di richieste) / (tempo totale in secondi).

L'ora viene calcolata dall'inizio del primo campione alla fine dell'ultimo campione. Questo tempo include intervalli tra campioni, ad esempio se lo script di test contiene timer.

Un altro modo per calcolare il rps è basato sulla latenza media dell'applicazione e sul numero di utenti virtuali. Per simulare un numero specifico di RPS con un test di carico, data la latenza dell'applicazione, è quindi possibile calcolare il numero richiesto di utenti virtuali.

La formula è: Utenti virtuali = (RPS) * (latenza in secondi).

Ad esempio, data una latenza dell'applicazione di 20 millisecondi (0,02 secondi), per simulare 100.000 RPS, è necessario configurare il test di carico con 2.000 utenti virtuali (100.000 * 0,02).

Componenti di Test di carico di Azure

Informazioni sui concetti chiave e sui componenti di Test di carico di Azure. Il diagramma seguente offre una panoramica del modo in cui i diversi concetti si riferiscono l'uno all'altro.

Diagram that shows how the different concepts in Azure Load Testing relate to one another.

Risorsa test di carico

La risorsa test di carico di Azure è la risorsa di primo livello per le attività di test di carico. Questa risorsa offre una posizione centralizzata per visualizzare e gestire test di carico, risultati dei test e artefatti correlati.

Quando si crea una risorsa di test di carico, specificarne la posizione, che determina la posizione dei motori di test. Test di carico di Azure crittografa automaticamente tutti gli artefatti nella risorsa. È possibile scegliere tra chiavi gestite da Microsoft o usare chiavi gestite dal cliente per la crittografia.

Per eseguire un test di carico per l'applicazione, aggiungere un test alla risorsa di test di carico. Una risorsa può contenere zero o più test.

È possibile usare il controllo degli accessi in base al ruolo di Azure per concedere l'accesso alla risorsa di test di carico e agli artefatti correlati.

Test di carico di Azure consente di usare le identità gestite per accedere ad Azure Key Vault per archiviare i parametri o i certificati dei segreti del test di carico. È possibile usare un'identità gestita assegnata dall'utente o assegnata dal sistema.

  Test

Un test descrive la configurazione del test di carico per l'applicazione. Si aggiunge un test a una risorsa di test di carico di Azure esistente.

Un test contiene un piano di test, che descrive i passaggi per richiamare l'endpoint dell'applicazione. È possibile definire il piano di test in uno dei due modi seguenti:

Test di carico di Azure supporta tutti i protocolli di comunicazione supportati da JMeter, non solo gli endpoint basati su HTTP. Ad esempio, è possibile leggere o scrivere in un database o una coda di messaggi nello script di test.

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

Il test specifica anche le impostazioni di configurazione per l'esecuzione del test di carico:

Inoltre, è possibile caricare file di dati di input CSV e file di configurazione JMeter nel test.

Quando si avvia un test, Test di carico di Azure distribuisce lo script di test JMeter, i file correlati e la configurazione nelle istanze del motore di test. Le istanze del motore di test avviano quindi lo script di test di JMeter per simulare il carico dell'applicazione.

Ogni volta che si avvia un test, Test di carico di Azure crea un'esecuzione di test e la collega al test.

Esecuzione del test

Un'esecuzione di test rappresenta un'esecuzione di un test di carico. Quando si esegue un test, l'esecuzione del test contiene una copia delle impostazioni di configurazione dal test associato.

Al termine dell'esecuzione del test, è possibile visualizzare e analizzare i risultati del test di carico nel dashboard test di carico di Azure nel portale di Azure.

In alternativa, è possibile scaricare i log di test ed esportare il file dei risultati del test.

Importante

Quando si aggiorna un test, le esecuzioni di test esistenti non ereditano automaticamente le nuove impostazioni dal test. Le nuove impostazioni vengono usate solo dalle nuove esecuzioni di test quando si esegue il test. Se si esegue nuovamente un'esecuzione di test esistente, vengono usate le impostazioni originali dell'esecuzione del test.

Motore di test

Un motore di test è l'infrastruttura di calcolo, gestita da Microsoft che esegue lo script di test di Apache JMeter. Le istanze del motore di test eseguono lo script JMeter in parallelo. È possibile aumentare il numero di istanze del motore di test configurando il numero di istanze del motore di test. Informazioni su come configurare il numero di utenti virtuali o simulare un numero di richieste di destinazione al secondo.

I motori di test sono ospitati nella stessa posizione della risorsa test di carico di Azure. È possibile configurare l'area di Azure quando si crea la risorsa di test di carico di Azure.

Durante l'esecuzione dello script di test, Test di carico di Azure raccoglie e aggrega i log di lavoro di Apache JMeter da tutte le istanze del motore di test. È possibile scaricare i log per l'analisi degli errori durante il test di carico.

Componente dell'app

Quando si esegue un test di carico per un'applicazione ospitata in Azure, è possibile monitorare le metriche delle risorse per i diversi componenti dell'applicazione di Azure (metriche lato server). Durante l'esecuzione del test di carico e dopo il completamento del test, è possibile monitorare e analizzare le metriche delle risorse nel dashboard test di carico di Azure.

Quando si crea o si aggiorna un test di carico, è possibile configurare l'elenco dei componenti dell'app monitorati da Test di carico di Azure. È possibile modificare l'elenco delle metriche delle risorse predefinite per ogni componente dell'app.

Altre informazioni sui tipi di risorse di Azure supportati da Test di carico di Azure.

Metrica

Durante un test di carico, Test di carico di Azure raccoglie le metriche sull'esecuzione del test. Esistono due tipi di metriche:

  • Le metriche lato client vengono segnalate dai motori di test. Queste metriche includono il numero di utenti virtuali, il tempo di risposta della richiesta, il numero di richieste non riuscite o il numero di richieste al secondo. È possibile definire criteri di esito negativo dei test in base a queste metriche lato client.

  • Le metriche lato server sono disponibili per le applicazioni ospitate in Azure e 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.

Si conoscono ora i concetti chiave di Test di carico di Azure per iniziare a creare un test di carico.