Concetti chiave per 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 un test di carico in modo più efficace perché identifichi problemi relativi alle prestazioni nell'applicazione.

Concetti generali sul 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 funziona indipendentemente da altri utenti virtuali. È possibile usare più utenti virtuali per simulare connessioni simultanee all'applicazione server.

Apache JMeter fa anche riferimento a utenti virtuali come thread. Nello script di test di JMeter, un elemento del gruppo thread consente di specificare il pool di utenti virtuali. Informazioni sui gruppi 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 raggiungere il numero di utenti virtuali di destinazione desiderato 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 totale 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 trascorso da immediatamente 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 verrà elaborato durante il test di carico.

Latenza

La latenza di una singola richiesta è il tempo totale trascorso da immediatamente 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 la prima parte della risposta.

Richieste al secondo (RPS)

Il numero di richieste al secondo (RPS) o velocità effettiva è il numero totale di richieste all'applicazione server generate dal test di carico al secondo.

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

Il tempo viene calcolato dall'inizio del primo campione alla fine dell'ultimo campione. Questo tempo include eventuali intervalli tra campioni, ad esempio nel caso in cui lo script di test contenga timer.

Un altro modo per calcolare il RPS è in base alla latenza media dell'applicazione e al 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 di come i diversi concetti sono correlati tra loro.

Diagramma che mostra come i diversi concetti di Test di carico di Azure sono correlati tra loro.

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, se ne specifica la posizione, la quale determinerà 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 identità gestite per accedere ad Azure Key Vault al fine di archiviare parametri o certificati segreti del test di carico. È possibile usare un'identità gestita assegnata dall'utente o una 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, il quale descrive i passaggi necessari per richiamare l'endpoint dell'applicazione. Il piano di test può essere definito in uno dei tre seguenti modi:

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

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

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

È anche possibile caricare file di dati di input CSV e file di configurazione di test nel test di carico.

Quando si avvia un test, Test di carico di Azure distribuisce lo script di test, i file correlati e la configurazione nelle istanze del motore di test. Le istanze del motore di test avviano quindi lo script di test 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 dei test di carico sul dashboard di 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 è un'infrastruttura di calcolo gestita da Microsoft che esegue lo script di test. Le istanze del motore di test eseguono lo script di test in parallelo. È possibile aumentare il test di carico configurando il numero di istanze del motore di test. Informazioni su come configurare il numero di utenti virtuali o simulare un numero desiderato di richieste di al secondo.

I motori di test sono ospitati nella stessa posizione della risorsa di 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 del framework di test da tutte le istanze del motore di test. È possibile scaricare i log per l'analisi di 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 di 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.

Ulteriori 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 del 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 i criteri di esito negativo dei test in base a queste metriche del lato client.

  • Le metriche del 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, inclusi Application Insights e Informazioni dettagliate sui contenitori, per acquisire 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.

A questo punto, si conoscono i concetti chiave di Test di carico di Azure necessari per iniziare a creare un test di carico.