Creare 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à.

Creare uno scenario di test

La creazione di uno scenario di test prevede quattro passaggi principali: configurazione delle impostazioni generali, definizione dello scenario, definizione dei modelli di traffico e revisione della configurazione.

Fase 1: impostazioni generali

Configura i parametri di base per il test di carico, tra cui il nome del test, la descrizione e le opzioni generali di configurazione.

Identificazione del test

  • Nome del test (obbligatorio): un nome descrittivo per lo scenario di test

  • Descrizione del test (obbligatorio): dettagli aggiuntivi sullo scopo e sulla configurazione del test

  • Tag (facoltativo): aggiungi fino a 5 tag per classificare e organizzare gli scenari di test

Opzioni di pianificazione

Configura quando deve essere eseguito il test:

  • Esegui ora: esegui il test immediatamente dopo la creazione.

    Opzione Esegui ora selezionata
  • Esegui una volta: pianifica l'esecuzione del test in una data e un'ora specifiche.

    Opzione Run Once con selettore di data e ora
  • Esegui in base a una pianificazione: utilizza la pianificazione basata su cronn per eseguire i test automaticamente a intervalli regolari. Puoi scegliere tra modelli comuni (ogni ora, ogni giorno, settimanale) o definire un'espressione cron personalizzata.

    Esegui su un'opzione Schedule con cron pattern selector

Flusso di lavoro di pianificazione

Quando si pianifica un test, si verifica il seguente flusso di lavoro:

  • I parametri di pianificazione vengono inviati all'API della soluzione tramite Amazon API Gateway.

  • L'API passa i parametri a una funzione Lambda che crea una regola CloudWatch Events programmata per l'esecuzione nella data specificata.

  • Per i test una tantum (Run Once), la regola CloudWatch Events viene eseguita nella data specificata e la funzione api-services Lambda esegue il test.

  • Per i test ricorrenti (Esegui in base a una pianificazione), la regola CloudWatch Events si attiva alla data specificata e la funzione api-services Lambda crea una nuova regola che viene eseguita immediatamente e in modo ricorrente in base alla frequenza specificata.

Dati in tempo reale

Seleziona la casella di controllo Includi dati in tempo reale per visualizzare le metriche in tempo reale durante l'esecuzione del test. Se abilitato, puoi monitorare:

  • Tempo di risposta medio.

  • Conteggi di utenti virtuali.

  • Le richieste riuscite contano.

  • Le richieste non riuscite contano.

La funzione live data fornisce grafici in tempo reale con dati aggregati a intervalli di un secondo. Per ulteriori informazioni, consulta Monitoraggio con dati in tempo reale.

Fase 2: Configurazione dello scenario

Definisci lo scenario di test specifico e seleziona il tuo framework di test preferito.

Selezione del tipo di test

Scegli il tipo di test di carico che desideri eseguire:

Seleziona il tipo di test da eseguire
  • Endpoint HTTP singolo: testa un singolo endpoint API o una pagina Web con una configurazione semplice.

  • JMeter- Carica script JMeter di test (file.jmx o archivi.zip).

  • K6 - Carica gli script di test K6 (file.js o archivi.zip).

  • Locust - Carica gli script di test Locust (file.py o archivi.zip).

Immagine di configurazione dell'endpoint HTTP: :images/test-types.png [Seleziona il tipo di test da eseguire] Quando è selezionato «Single HTTP Endpoint», configura queste impostazioni:

Endpoint HTTP (obbligatorio)

Inserisci l'URL completo dell'endpoint che desideri testare. Ad esempio, https://api.example.com/users . Assicurati che l'endpoint sia accessibile dall'infrastruttura AWS.

Metodo HTTP (obbligatorio)

Seleziona il metodo HTTP per le tue richieste. Il valore predefinito è GET. Altre opzioni includono POSTPUT,DELETE,PATCH,HEAD, eOPTIONS.

Intestazione della richiesta (opzionale)

Aggiungi intestazioni HTTP personalizzate alle tue richieste. Gli esempi più comuni includono:

  • Content-Type: application/json

  • Authorization: Bearer <token>

  • User-Agent: LoadTest/1.0

    Scegli Aggiungi intestazione per includere più intestazioni.

Body Payload (opzionale)

Aggiungi il contenuto del corpo della richiesta per le richieste POST o PUT. Supporta i formati JSON, XML o testo semplice. Ad esempio: {"userId": 123, "action": "test"}.

Script del framework di test

Quando usi JMeter K6 o Locust, carica il tuo file di script di test o un archivio.zip contenente lo script di test e i file di supporto. Puoi JMeter infatti includere plugin personalizzati in una /plugins cartella all'interno del tuo archivio.zip.

Importante

Sebbene lo script di test (JMeter, K6 o Locust) possa definire la concorrenza (utenti virtuali), i tassi di transazione (TPS), i tempi di accelerazione e altri parametri di caricamento, la soluzione sostituirà queste configurazioni con i valori specificati nella schermata Traffic Shape durante la creazione del test. La configurazione Traffic Shape controlla il conteggio delle attività, la concorrenza (utenti virtuali per attività), la durata dell'accelerazione e la durata di attesa per l'esecuzione del test.

Fase 3: Forma del traffico

Configura la modalità di distribuzione del traffico durante il test, incluso il supporto multiregionale.

schermata di configurazione Traffic Shape

Configurazione del traffico multiregionale

Seleziona una o più regioni AWS per distribuire geograficamente il test di carico. Per ogni regione selezionata, configura:

Conteggio delle attività

Il numero di contenitori (attività) che verranno avviati nel cluster Fargate per lo scenario di test. Non verranno create attività aggiuntive una volta che l'account avrà raggiunto il limite «La risorsa Fargate è stata raggiunta».

Concurrency (Simultaneità)

Il numero di utenti virtuali simultanei generati per attività. Il limite consigliato si basa sulle impostazioni predefinite di 2 v CPUs per attività. La concorrenza è limitata dalle risorse di CPU e memoria.

Determina il numero di utenti

Il numero di utenti che un container può supportare per un test può essere determinato aumentando gradualmente il numero di utenti e monitorando le prestazioni in Amazon CloudWatch. Una volta notato che le prestazioni della CPU e della memoria si stanno avvicinando ai limiti, hai raggiunto il numero massimo di utenti che un container può supportare per quel test nella sua configurazione predefinita (2 vCPU e 4 GB di memoria).

Processo di calibrazione

È possibile iniziare a determinare i limiti di utenti simultanei per il test utilizzando il seguente esempio:

  1. Crea un test con non più di 200 utenti.

  2. Durante l'esecuzione del test, monitora la CPU e la memoria utilizzando la CloudWatch console:

    1. Dal riquadro di navigazione a sinistra, in Container Insights, seleziona Performance Monitoring.

    2. Nella pagina di monitoraggio delle prestazioni, dal menu a discesa a sinistra, seleziona ECS Clusters.

    3. Dal menu a discesa a destra, seleziona il tuo cluster Amazon Elastic Container Service (Amazon ECS).

  3. Durante il monitoraggio, controlla la CPU e la memoria. Se la CPU non supera il 75% o la memoria non supera l'85% (ignora i picchi occasionali), puoi eseguire un altro test con un numero maggiore di utenti.

Ripetere i passaggi 1-3 se il test non ha superato i limiti di risorse. Facoltativamente, puoi aumentare le risorse del contenitore per consentire un numero maggiore di utenti simultanei. Tuttavia, ciò comporta un costo più elevato. Per i dettagli, consulta la Guida per gli sviluppatori.

Nota

Per risultati accurati, esegui solo un test alla volta per determinare i limiti degli utenti simultanei. Tutti i test utilizzano lo stesso cluster e CloudWatch Container Insights aggrega i dati sulle prestazioni in base al cluster. Ciò fa sì che entrambi i test vengano segnalati contemporaneamente a CloudWatch Container Insights, il che si traduce in metriche di utilizzo delle risorse imprecise per un singolo test.

Per ulteriori informazioni sulla calibrazione degli utenti per motore, consulta la sezione Calibrazione di un test Taurus nella documentazione. BlazeMeter

Nota

La soluzione mostra le informazioni sulla capacità disponibile per ogni regione, aiutandovi a pianificare la configurazione del test entro i limiti disponibili.

Tabella delle attività disponibili

La tabella delle attività disponibili mostra la disponibilità delle risorse per ogni regione selezionata:

  • Regione: il nome della regione AWS.

  • v CPUs per Task: il numero di elementi virtuali CPUs assegnati a ciascuna attività (impostazione predefinita: 2).

  • Limite attività DLT: il numero massimo di attività che è possibile creare in base ai limiti di Fargate dell'account (impostazione predefinita: 2000).

  • Attività DLT disponibili: il numero attuale di attività disponibili per l'uso nella regione (impostazione predefinita: 2000).

Tabella che mostra le attività disponibili per regione

Per aumentare il numero di attività disponibili o v CPUs per attività, consulta la Guida per gli sviluppatori.

Durata del test

Definisci per quanto tempo verrà eseguito il test di carico:

Rampa verso l'alto

Il tempo necessario per raggiungere la concorrenza prefissata. In questo periodo, il carico aumenta gradualmente da 0 al livello di concorrenza configurato.

Tieni premuto per

La durata necessaria per mantenere il carico previsto. Il test prosegue in piena concomitanza per questo periodo.

Fase 4: Revisione e creazione

Rivedi tutte le configurazioni prima di creare lo scenario di test. Verifica:

  • Impostazioni generali (nome, descrizione, pianificazione).

  • Configurazione dello scenario (tipo di test, endpoint o script).

  • Forma del traffico (attività, utenti, durata, regioni).

Dopo la revisione, scegli Crea per salvare lo scenario di test.

Gestione degli scenari di test

Dopo aver creato uno scenario di test, puoi:

  • Modifica: modifica la configurazione del test. Casi di utilizzo comune comprendono:

    • Perfezionamento della forma del traffico per raggiungere la velocità di transazione desiderata.

  • Copia: duplica uno scenario di test esistente per creare varianti. Casi di utilizzo comune comprendono:

    • Aggiornamento degli endpoint o aggiunta headers/body di parametri.

    • Aggiungere o modificare script di test.

  • Elimina: rimuovi gli scenari di test che non ti servono più.