Condividi tramite


Definire i criteri di errore per i test di carico usando Test di carico di Azure

Questo articolo illustra come definire criteri di errore o criteri di arresto automatico per i test di carico con Test di carico di Azure. I criteri di errore consentono di definire le aspettative di prestazioni e qualità per l'applicazione sotto carico. Test di carico di Azure supporta varie metriche client e server per la definizione di criteri di errore, ad esempio la percentuale di errori o la percentuale di CPU per una risorsa di Azure. I criteri di arresto automatico consentono di arrestare automaticamente il test di carico quando la frequenza degli errori supera una determinata soglia.

Prerequisiti

  • Un account Azure con una sottoscrizione attiva. Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.
  • Risorsa del test di carico di Azure. Se è necessario creare una risorsa test di carico di Azure, vedere la guida introduttiva Creare ed eseguire un test di carico.

Criteri di esito negativo del test di carico

I criteri di esito negativo del test di carico sono condizioni per le metriche, che il test deve soddisfare. I criteri di test vengono definiti a livello di test di carico in Test di carico di Azure. Un test di carico può avere uno o più criteri di test. Quando almeno uno dei criteri di test restituisce true, il test di carico ottiene lo stato non riuscito.

È possibile definire un massimo di 50 criteri di test per un test di carico. Se sono presenti più criteri per la stessa metrica, viene usato il criterio con il valore soglia più basso.

Struttura dei criteri non riuscita per le metriche client

Il formato dei criteri di errore in Test di carico di Azure segue quello di un'istruzione condizionale per una metrica supportata. Ad esempio, assicurarsi che il numero medio di richieste al secondo sia maggiore di 500.

Per le metriche lato client, è possibile definire criteri di test a due livelli. Un test di carico può combinare criteri a livelli diversi.

  • A livello di test di carico. Ad esempio, per assicurarsi che la percentuale di errore totale non superi una soglia. La struttura per i criteri è: Aggregate_function (client_metric) condition threshold.
  • A livello di richiesta JMeter (sampler JMeter). Ad esempio, è possibile specificare una soglia di tempo di risposta della richiesta getProducts, ma ignorare il tempo di risposta della richiesta di accesso. La struttura per i criteri è: Request: Aggregate_function (client_metric) condition threshold.

La tabella seguente descrive i diversi componenti:

Parametro Descrizione
Client metric Obbligatorio. Metrica client in cui deve essere applicata la condizione.
Aggregate function Obbligatorio. Funzione di aggregazione da applicare alla metrica client.
Condition Obbligatorio. Operatore di confronto, ad esempio greater than, o less than.
Threshold Obbligatorio. Valore numerico da confrontare con la metrica client.
Request Facoltativo. Nome del campionatore nello script JMeter a cui si applica il criterio. Se non si specifica un nome di richiesta, il criterio si applica all'aggregazione di tutte le richieste nello script.
Non includere dati personali nel nome del campionatore nello script JMeter. I nomi del campionatore vengono visualizzati nel dashboard dei risultati di Test di carico di Azure.

Metriche client supportate per i criteri di errore

Test di carico di Azure supporta le metriche client seguenti:

Metric Funzione di aggregazione Threshold Condizione Descrizione
response_time_ms avg (media)
min (minimo)
max (massimo)
pxx (percentile), xx può essere 50, 75, 90, 95, 96, 97, 98, 99, 999 e 9999
Valore intero, che rappresenta il numero di millisecondi (ms). > (maggiore di)
< (minore di)
Tempo di risposta o tempo trascorso, espresso in millisecondi. Altre informazioni sul tempo trascorso sono disponibili nella documentazione di Apache JMeter.
latency avg (media)
min (minimo)
max (massimo)
pxx (percentile), xx può essere 50, 90, 95, 99
Valore intero, che rappresenta il numero di millisecondi (ms). > (maggiore di)
< (minore di)
Latenza, in millisecondi. Altre informazioni sulla latenza sono disponibili nella documentazione di Apache JMeter.
error percentage Valore numerico nell'intervallo compreso tra 0 e 100, che rappresenta una percentuale. > (maggiore di) Percentuale di richieste non riuscite.
requests_per_sec avg (media) Valore numerico con un massimo di due posizioni decimali. > (maggiore di)
< (minore di)
Numero di richieste al secondo.
requests count Valore intero. > (maggiore di)
< (minore di)
Numero totale di richieste.

Definire i criteri di errore del test di carico per le metriche client

In questa sezione vengono configurati i criteri di test per la metrica client per un test di carico nel portale di Azure.

  1. Nel portale di Azure passare alla risorsa di Test di carico di Azure creata.

  2. Nel riquadro sinistro selezionare Test per visualizzare l'elenco dei test di carico.

  3. Selezionare il test di carico dall'elenco e quindi selezionare Modifica.

    Screenshot dell'elenco dei test per una risorsa di test di carico di Azure nella portale di Azure, evidenziando il pulsante

  4. Nel riquadro Criteri di test compilare i valori Metrica, Funzione di aggregazione, Condizione e Soglia per il test.

    Screenshot del riquadro

    Facoltativamente, immettere le informazioni sul nome della richiesta per aggiungere un criterio di test per una richiesta JMeter specifica. Il valore deve corrispondere al nome dell'sampler JMeter nel file JMX.

    Screenshot dell'interfaccia utente di JMeter, che evidenzia il nome della richiesta.

  5. Seleziona Applica per salvare le modifiche.

    Quando si esegue il test di carico, Test di carico di Azure usa i criteri di test per determinare lo stato dell'esecuzione del test di carico.

  6. Eseguire il test e visualizzare lo stato nel dashboard del test di carico.

    Il dashboard mostra ognuno dei criteri di test e il relativo stato. Lo stato complessivo del test non è riuscito se è stato soddisfatto almeno un criterio.

    Screenshot che mostra i criteri di test nel dashboard del test di carico.

Accedere al componente dell'app per i criteri di test nelle metriche del server

Quando imposti i criteri di errore per una metrica nel componente dell'app, la risorsa di test di carico usa un'identità gestita per accedere a tale componente. Dopo aver configurato l'identità gestita, è necessario concedere all'identità gestita delle autorizzazioni della risorsa di test di carico per leggere questi valori dal componente dell'app.

Per concedere alle risorse di test di carico di Azure le autorizzazioni per leggere le metriche dal componente dell'app:

  1. Nella portale di Azure passare al componente dell'app.

  2. Nel riquadro sinistro selezionare Controllo di accesso (IAM), quindi selezionare + Aggiungi e quindi Aggiungi assegnazione di ruolo.

    Screenshot del Controllo di accesso(IAM) nel componente dell'applicazione in cui devono essere impostati i criteri di errore.

  3. Nella scheda Ruolo, in Ruoli delle funzioni del processo, cercare Lettore di monitoraggio o Collaboratore monitoraggio.

  4. Nella scheda Membri, in Assegna accesso a, selezionare Identità gestita.

  5. Fare clic su Seleziona membri, cercare e selezionare l'identità gestita per la risorsa di test di carico e quindi selezionare Avanti. Se si usa un'identità gestita assegnata dal sistema, il nome dell'identità gestita corrisponde a quello della risorsa di test di carico di Azure.

  6. Selezionare Rivedi e assegna per assegnare l'identità all'autorizzazione.

    Screenshot dell'assegnazione delle autorizzazioni per leggere le metriche alla risorsa di test di carico.

Quando il test viene eseguito, l'identità gestita associata alla risorsa di test di carico può ora leggere le metriche per il test di carico dal componente dell'app.

Definire i criteri di errore del test di carico per le metriche del server

Importante

Test di carico di Azure non supporta la configurazione dei criteri di errore nelle metriche lato server da Azure Pipelines/Github Actions.

In questa sezione vengono configurati i criteri di errore di test nelle metriche lato server per un test di carico nel portale di Azure.

  1. Nel portale di Azure passare alla risorsa di Test di carico di Azure creata.

  2. Selezionare Crea test.

  3. Nella scheda Monitoraggio configurare i componenti dell'app da monitorare durante il test.

  4. Configurare l'identità di riferimento delle metriche. L'identità può essere l'identità assegnata dal sistema della risorsa di test di carico o una delle identità assegnate dall'utente. Assicurarsi di usare la stessa identità concessa in precedenza.

    Screenshot della configurazione dell'identità di riferimento delle metriche.

  5. Nel riquadro Criteri di test compilare i valori ID risorsa, Spazio dei nomi, Metrica, Aggregazione, Condizione, Soglia per il test. È possibile impostare criteri di errore solo per le risorse o i componenti dell'app monitorati durante il test.

    Screenshot della configurazione dei criteri di errore nelle metriche del server.

  6. Seleziona Applica per salvare le modifiche. Quando si esegue il test di carico, Test di carico di Azure usa i criteri di test per determinare lo stato dell'esecuzione del test di carico.

  7. Eseguire il test e visualizzare lo stato nel dashboard del test di carico. Il dashboard mostra ognuno dei criteri di test e il relativo stato. Lo stato complessivo del test non è riuscito se è stato soddisfatto almeno un criterio.

    Screenshot del dashboard che mostra i risultati dei test.

Arresto automatico della configurazione

Test di carico di Azure arresta automaticamente un test di carico se la percentuale di errore supera una determinata soglia per un determinato intervallo di tempo. L'arresto automatico impedisce l'esecuzione di test non superati, ad esempio a causa di un URL dell'endpoint configurato in modo non corretto.

Nella configurazione del test di carico è possibile abilitare o disabilitare la funzionalità di arresto automatico e configurare la soglia percentuale di errore e l'intervallo di tempo. Per impostazione predefinita, test di carico di Azure arresta automaticamente un test di carico con una percentuale di errore pari almeno al 90% durante qualsiasi intervallo di tempo di 60 secondi.

È possibile usare la funzionalità di arresto automatico di Test di carico di Azure in combinazione con un listener AutoStop nello script JMeter. Il test di carico si arresta automaticamente quando viene soddisfatto uno dei criteri nella configurazione di arresto automatico o nel listener JMeter AutoStop.

Attenzione

Se si disabilita l'arresto automatico per il test di carico, è possibile che si verifichino costi anche quando il test di carico è configurato in modo non corretto.

Per configurare l'arresto automatico per il test di carico nel portale di Azure:

  1. Nel portale di Azure passare alla risorsa di Test di carico di Azure creata.

  2. Nel riquadro sinistro selezionare Test per visualizzare l'elenco dei test di carico.

  3. Selezionare il test di carico dall'elenco e quindi selezionare Modifica. In alternativa, selezionare Crea>carica uno script JMeter per creare un nuovo test.

  4. Passare alla scheda Criteri di test per configurare la funzionalità di arresto automatico.

    • Abilitare o disabilitare l'arresto automatico del test di carico usando il controllo test di arresto automatico.

    • Se si abilita l'arresto automatico, è possibile compilare i campi Percentuale errore e Intervallo di tempo. Specificare l'intervallo di tempo in secondi.

      Screenshot del riquadro

  5. Selezionare Applica o Rivedi e crea se si sta creando un nuovo test di carico per salvare le modifiche.

Passaggi successivi

  • Per informazioni su come parametrizzare un test di carico usando i segreti, vedere Parametrizzare un test di carico.

  • Per informazioni sull'automazione dei test delle prestazioni, vedere Configurare test automatizzati delle prestazioni.