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 per la definizione di criteri di errore, ad esempio la frequenza degli errori o il tempo di risposta. 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.
  • Una risorsa di 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 lato client, 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 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.
  • 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 .

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

Struttura dei criteri non riuscita

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.

I criteri di errore hanno la struttura seguente:

  • Criteri di test a livello di test di carico: Aggregate_function (client_metric) condition threshold.
  • Criteri di test applicati a richieste JMeter specifiche: 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 dell'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, 90, 95, 99
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 esito negativo del test di carico

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

  1. Nella portale di Azure passare alla risorsa Test di carico di Azure.

  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 of the list of tests for an Azure load testing resource in the Azure portal, highlighting the 'Edit' button.

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

    Screenshot of the 'Test criteria' pane for a load test in the Azure portal and highlights the fields for adding a test criterion.

    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 of the JMeter user interface, highlighting the request name.

  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 that shows the test criteria on the load test dashboard.

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. Nella portale di Azure passare alla risorsa Test di carico di Azure.

  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 of the 'Test criteria' pane for a load test in the Azure portal, highlighting the auto stop functionality.

  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.