View a markdown version of this page

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 (opzionale): 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.

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

  • Esegui in base a una pianificazione: utilizza la pianificazione basata su cron per eseguire i test automaticamente a intervalli regolari. Puoi scegliere tra modelli comuni (ogni ora, ogni giorno, settimanale) o definire un'espressione cron personalizzata. Per i dettagli sul formato cron accettato, sui pattern supportati e sui vincoli, consulta il riferimento all'espressione Cron nella guida per gli sviluppatori.

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 EventBridge pianificazione Amazon Scheduler configurata per l'esecuzione alla data specificata.

  • Per i test singoli (Run Once), la EventBridge pianificazione Scheduler richiama la funzione api-services Lambda alla data e all'ora specificate, che esegue il test.

  • Per i test ricorrenti (Esegui su una pianificazione), la EventBridge pianificazione Scheduler richiama la funzione api-services Lambda immediatamente e secondo la cadenza definita dall'espressione cron o rate fino alla data di scadenza.

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:

  • Endpoint HTTP singolo: testa un singolo endpoint API o una pagina Web con una configurazione semplice.

  • JMeter: carica gli script di test JMeter (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).

Nota

Tutti e quattro i tipi di test si basano su componenti di terze parti. La soluzione esegue i test tramite il framework di automazione dei test Taurus, che esegue JMeter, K6 o Locust a seconda del tipo di test; i test Single HTTP Endpoint vengono convertiti in un piano di test JMeter ed eseguiti dall'Apache JMeter in bundle. Prima di creare un test, esamina i framework di test per considerazioni sulla sicurezza, informazioni sulla licenza e Third-party opzioni di applicazione delle patch.

Configurazione degli endpoint HTTP

Quando è selezionato «Single HTTP Endpoint», la soluzione genera un piano di test JMeter dalla configurazione e lo esegue con il binario Apache JMeter in bundle. 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. Esempi comuni comprendono:

  • 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. Per JMeter, puoi 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 numero di 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.

Multi-region configurazione del traffico

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 vCPU 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. Nel riquadro di navigazione, 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.

  • vCPU per task: il numero di CPU virtuali allocate a ciascuna attività (impostazione predefinita: 2).

  • Limite attività DLT: il numero massimo di attività che è possibile creare in base alla quota di vCPU Fargate on-demand dell'account. I nuovi account in genere hanno una quota inferiore; verifica il limite attuale nella console Service Quotas e richiedi un aumento se necessario.

  • Attività DLT disponibili: il numero attuale di attività disponibili nella regione, calcolato come limite di attività DLT meno le VCPU già utilizzate durante l'esecuzione delle attività Fargate.

Per aumentare il numero di attività disponibili o di vCPU per attività, consulta la Developer Guide.

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

Controlla 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ù.