Esegui uno scenario di test - Test di carico distribuito su AWS

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Esegui uno scenario di test

Dopo aver creato uno scenario di test, è possibile eseguirlo immediatamente o pianificarne l'esecuzione in un momento specifico delle future fasi. Quando accedi a un test in esecuzione, la console visualizza la scheda Dettagli dello scenario con lo stato e le metriche delle attività in tempo reale.

Scenario di test in esecuzione che mostra lo stato delle attività e le metriche in tempo reale

Visualizzazione dei dettagli dello scenario

La scheda Dettagli dello scenario mostra le informazioni chiave sul test. La tabella sullo stato delle attività contiene informazioni in tempo reale per ogni regione.

Tabella dello stato delle attività

La tabella dello stato delle attività mostra informazioni in tempo reale per ogni regione:

  • Regione: la regione AWS in cui vengono eseguite le attività

  • Task Counts: il numero totale di attività configurate per la regione

  • Concorrenza: il numero di utenti virtuali per attività

  • In esecuzione: numero di attività attualmente in esecuzione nel test

  • In sospeso: numero di attività in attesa di avvio

  • Approvvigionamento: numero di attività in fase di assegnazione

Workflow di esecuzione dei test

All'avvio di un test, si verifica il seguente flusso di lavoro:

  1. Provisioning delle attività: la soluzione fornisce contenitori (attività) nelle regioni AWS specificate. Le attività vengono visualizzate nella colonna «Provisioning».

  2. Avvio delle attività: la soluzione continua a fornire le attività fino al raggiungimento del numero di attività previsto in ciascuna regione. Le attività passano da «Fornitura» a «In sospeso» a «In esecuzione».

  3. Generazione di traffico: dopo che la soluzione ha effettuato il provisioning di tutte le attività in una regione, inizia a inviare traffico all'endpoint di destinazione.

  4. Esecuzione del test: il test viene eseguito per la durata configurata (ramp-up + tempo di attesa).

  5. Analisi dei risultati: al termine del test, un processo di analisi in background aggrega ed elabora i risultati di tutte le regioni.

Stati di esecuzione del test

Le esecuzioni dei test possono avere i seguenti stati:

  • Pianificato: l'esecuzione del test è programmata per le prossime future.

  • In esecuzione: il test è attualmente in corso.

  • Annullato: un utente ha annullato un'esecuzione di test in corso.

  • Errata: durante l'esecuzione del test si è verificato un errore.

  • Completato: l'esecuzione del test è stata completata correttamente e i risultati sono pronti.

Monitoraggio con dati in tempo reale

Se hai abilitato i dati in tempo reale durante la creazione dello scenario di test, puoi visualizzare le metriche in tempo reale mentre il test è in esecuzione. La sezione Metriche in tempo reale mostra quattro grafici che si aggiornano continuamente man mano che il test procede, con dati aggregati a intervalli di un secondo.

Grafici delle metriche in tempo reale che mostrano i dati sulle prestazioni dei test in tempo reale

Descrizioni dei grafici

Tempo di risposta medio

Visualizza il tempo di risposta medio in secondi per le richieste elaborate da ciascuna regione. L'asse Y mostra il tempo di risposta in secondi e l'asse X mostra l'ora del giorno. Ogni regione è rappresentata da un colore diverso nella legenda.

Utenti virtuali

Mostra il numero di utenti virtuali simultanei che generano attivamente carico in ciascuna regione. Il grafico mostra l'aumento degli utenti virtuali durante il test e mantiene il livello di concorrenza previsto.

Richieste riuscite

Visualizza il conteggio cumulativo delle richieste riuscite nel tempo per ogni regione. Il grafico mostra la velocità con cui vengono elaborate le richieste riuscite.

Richieste non riuscite

Mostra il numero cumulativo di richieste non riuscite nel tempo per ogni regione. Un conteggio basso o nullo indica una corretta esecuzione del test.

Visualizzazione in più regioni

Quando si eseguono test su più regioni, ogni grafico mostra i dati per tutte le regioni contemporaneamente. La legenda nella parte inferiore di ogni grafico identifica il colore che rappresenta ciascuna regione (ad esempio, us-west-2 e us-east-1).

Implementazione tecnica

Il gruppo di CloudWatch log per le attività di Fargate contiene un filtro di sottoscrizione che acquisisce i risultati dei test. Quando viene rilevato il pattern, una funzione Lambda struttura i dati e li pubblica su un argomento di AWS IoT Core. La console web sottoscrive questo argomento e visualizza le metriche in tempo reale.

Nota

I dati in tempo reale sono temporanei e disponibili solo durante l'esecuzione del test. La console web mantiene un massimo di 5.000 punti dati, dopodiché i dati più vecchi vengono sostituiti con i più recenti. Se la pagina si aggiorna, i grafici saranno vuoti e inizieranno dal successivo punto dati disponibile. Una volta completato il test, la soluzione archivia i dati dei risultati in DynamoDB e Amazon S3. Se non sono ancora disponibili dati, i grafici mostrano «Non ci sono dati disponibili».

Annullamento di un test

È possibile annullare un test in esecuzione dalla console Web. Quando si annulla un test, si verifica il seguente flusso di lavoro:

  1. La richiesta di cancellazione viene inviata all'microservicesAPI

  2. L'microservicesAPI richiama la funzione task-canceler Lambda, che interrompe tutte le attività attualmente avviate.

  3. Se la funzione task-runner Lambda continua a essere eseguita dopo la chiamata di annullamento iniziale, le attività potrebbero continuare ad avviarsi brevemente

  4. Al termine della funzione task-runner Lambda, AWS Step Functions procede alla Cancel Test fase, che esegue nuovamente la funzione task-canceler Lambda per interrompere le attività rimanenti

Nota

I test annullati richiedono tempo per completare il processo di spegnimento poiché la soluzione chiude tutti i contenitori. Lo stato del test cambierà in «Annullato» una volta ripulite tutte le risorse.