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 un'applicazione sotto carico. Test di carico di Azure supporta varie metriche client e server per la definizione di criteri di errore, ad esempio la frequenza degli 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 l'avvio rapido Creare ed eseguire un test di carico.

Criteri di errore del test di carico

I criteri di errore 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 .

Per un testo di carico è possibile definire fino a 50 criteri di test. 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. 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. La metrica client in cui deve essere applicata la condizione.
Aggregate function Obbligatorio. La funzione di aggregazione da applicare alla metrica client.
Condition Obbligatorio. L'operatore di confronto, ad esempio greater than o less than.
Threshold Obbligatorio. Il valore numerico da confrontare con la metrica client.
Request Opzionale. Nome del campionatore nello script JMeter o nella richiesta nello script Locust a cui si applica il criterio. Se non si specifica un nome della richiesta, il criterio si applica all'aggregazione di tutte le richieste nello script.
Non includere dati personali nel nome della richiesta nello script di test. I nomi delle richieste appaiono 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:

Metrica Funzione di aggregazione Soglia Condizione Descrizione
response_time_ms (media) avg
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 (media) avg
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 (media) avg 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 Azure Load Testing.

  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 nel portale di Azure che evidenzia il pulsante 'Modifica'.

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

    Screenshot del riquadro 'Criteri di test' per un test di carico nel portale di Azure che evidenzia i campi per l'aggiunta di un criterio di test.

    Facoltativamente, immettere le informazioni sul Nome della richiesta per aggiungere un criterio di test per una richiesta specifica. Il valore deve corrispondere al nome del campionatore o della richiesta nello script di test.

    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 si impostano 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 le 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. Nel portale di Azure, passare al componente dell'app.

  2. Nel riquadro sinistro, selezionare Controllo di accesso (IAM), quindi selezionare + Aggiungi e quindi selezionare 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, sotto Ruoli delle funzioni del processo, cercare Lettore monitoraggio o Collaboratore monitoraggio.

  4. Nella scheda Membri, sotto 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 + assegna per assegnare l'autorizzazione all'identità.

    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 Azure Load Testing.

  2. Selezionare Crea test.

  3. Sotto la 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 visualizza 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 una determinata finestra temporale. 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 la finestra temporale. 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 finestra 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 Azure Load Testing.

  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 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 di errori e Finestra temporale. Specificare la finestra temporale in secondi.

      Screenshot del riquadro 'Criteri di test' per un test di carico nel portale di Azure che evidenzia la funzionalità di arresto automatico.

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

Passaggi successivi