Considerazioni di natura progettuale - 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à.

Considerazioni di natura progettuale

Questa sezione descrive importanti decisioni di progettazione e opzioni di configurazione per la soluzione Distributed Load Testing on AWS, incluse le applicazioni supportate, i tipi di test, le opzioni di pianificazione e le considerazioni sulla distribuzione.

Applicazioni supportate

Questa soluzione supporta il test di applicazioni basate su cloud e applicazioni locali purché sia disponibile la connettività di rete dal tuo account AWS all'applicazione. La soluzione supporta l'utilizzo APIs di protocolli HTTP o HTTPS.

Tipi di test

Distributed Load Testing su AWS supporta diversi tipi di test: semplici test degli endpoint HTTP JMeter, K6 e Locust.

Semplici test degli endpoint HTTP

La console Web fornisce un'interfaccia di configurazione degli endpoint HTTP che consente di testare qualsiasi endpoint HTTP o HTTPS senza scrivere script personalizzati. È possibile definire l'URL dell'endpoint, selezionare il metodo HTTP (GET, POST, PUT, DELETE, ecc.) da un menu a discesa e, facoltativamente, aggiungere intestazioni di richiesta e payload body personalizzati. Questa configurazione consente di eseguire test APIs con token di autorizzazione personalizzati, tipi di contenuto o qualsiasi altra intestazione HTTP e corpo di richiesta richiesto dall'applicazione.

JMeter test

Quando si crea uno scenario di test utilizzando la console Web, è possibile caricare uno script JMeter di test. La soluzione carica lo script nel bucket S3 degli scenari. Quando le attività di Amazon ECS vengono eseguite, scaricano lo JMeter script da S3 ed eseguono il test.

Importante

Sebbene JMeter lo script possa definire concorrenza (utenti virtuali), tassi di transazione (TPS), 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.

Se disponi JMeter di file di input, puoi comprimere i file di input insieme allo script. JMeter È possibile scegliere il file zip quando si crea uno scenario di test.

Se desideri includere dei plugin, tutti i file.jar inclusi in una sottodirectory /plugins nel file zip fornito in bundle verranno copiati nella directory delle JMeter estensioni e saranno disponibili per il test di carico.

Nota

Se JMeter includi file di input nel file di JMeter script, devi includere il percorso relativo dei file di input nel file di script. JMeter Inoltre, i file di input devono trovarsi nel percorso relativo. Ad esempio, se i file JMeter di input e il file di script si trovano invece in/home/user directory and you refer to the input files in the JMeter script file, the path of input files must be ./INPUT_FILES. If you use /home/user/INPUT_FILES, il test avrà esito negativo perché non sarà in grado di trovare i file di input.

Se includete JMeter dei plugin, i file.jar devono essere raggruppati in una sottodirectory denominata /plugins all'interno della radice del file zip. Rispetto alla radice del file zip, il percorso dei file jar deve essere. /plugins/bundled_plugin.jar.

Per ulteriori informazioni su come utilizzare gli script, consulta il Manuale dell'utente. JMeter JMeter

Test K6

La soluzione supporta i test basati sul framework K6. K6 è rilasciato con licenza AGPL-3.0. La soluzione visualizza un messaggio di conferma della licenza durante la creazione di un nuovo test K6. È possibile caricare il file di test K6 insieme a tutti i file di input necessari in un file di archivio.

Importante

Sebbene lo script K6 possa definire concorrenza (utenti virtuali), fasi, soglie e altri parametri di carico, 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 di avvio e la durata di attesa per l'esecuzione del test.

Test Locust

La soluzione supporta i test basati sul framework Locust. È possibile caricare il file di test Locust insieme a tutti i file di input necessari in un file di archivio.

Importante

Sebbene lo script Locust possa definire la concorrenza (conteggio utenti), la frequenza di spawn 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 di avvio e la durata di attesa per l'esecuzione del test.

Pianificazione dei test

La soluzione offre tre opzioni di tempistica di esecuzione per l'esecuzione dei test di carico:

  • Esegui ora: esegue il test di carico subito dopo la creazione

  • Esegui una volta: esegui il test in una data e un'ora specifiche future

  • Esegui secondo una pianificazione: crea test ricorrenti utilizzando le espressioni cron per definire la pianificazione

Quando si seleziona Esegui una volta, si specifica il tempo di esecuzione nel formato a 24 ore e la data di esecuzione in cui deve iniziare l'esecuzione del test di carico.

Quando selezioni Esegui su una pianificazione, puoi inserire manualmente un'espressione cron o selezionare uno dei modelli cron più comuni (ad esempio ogni ora, ogni giorno a un'ora specifica, nei giorni feriali o mensili). L'espressione cron utilizza un formato di pianificazione preciso con campi per minuti, ore, giorno del mese, mese, giorno della settimana e anno. È inoltre necessario specificare una data di scadenza, che definisce quando l'esecuzione del test programmato deve cessare. Per ulteriori informazioni su come funziona la pianificazione, consulta la sezione Flusso di lavoro di pianificazione dei test di questa guida.

Nota
  • Durata del test: durante la pianificazione, considera la durata totale dei test. Ad esempio, il completamento di un test con un tempo di accelerazione di 10 minuti e un tempo di attesa di 40 minuti richiederà circa 80 minuti.

  • Intervallo minimo: assicurati che l'intervallo tra i test programmati sia più lungo della durata stimata del test. Ad esempio, se il test dura circa 80 minuti, programmalo in modo che venga eseguito con una frequenza non superiore a ogni 3 ore.

  • Limitazione oraria: il sistema non consente di programmare i test con una differenza di solo un'ora, anche se la durata stimata del test è inferiore a un'ora.

Test simultanei

Questa soluzione crea una CloudWatch dashboard Amazon per ogni test che mostra l'output combinato di tutte le attività in esecuzione nel cluster Amazon ECS in tempo reale. La CloudWatch dashboard mostra il tempo di risposta medio, il numero di utenti simultanei, il numero di richieste riuscite e il numero di richieste non riuscite. La soluzione aggrega ogni metrica al secondo e aggiorna la dashboard ogni minuto.

Gestione degli utenti

Durante la configurazione iniziale, fornisci un nome utente e un indirizzo e-mail che Amazon Cognito utilizza per concederti l'accesso alla console web della soluzione. La console non fornisce l'amministrazione degli utenti. Per aggiungere altri utenti, devi utilizzare la console Amazon Cognito. Per ulteriori informazioni, consulta la sezione Gestione degli utenti nei pool di utenti nella Amazon Cognito Developer Guide.

Per la migrazione degli utenti esistenti ai pool di utenti di Amazon Cognito, consulta il blog di AWS Approaches for migrating users to Amazon Cognito user pool.

Implementazione regionale

Questa soluzione utilizza Amazon Cognito, disponibile solo in regioni AWS specifiche. Pertanto, è necessario distribuire questa soluzione in una regione in cui è disponibile Amazon Cognito. Per la disponibilità dei servizi più aggiornata per regione, consulta l'AWS Regional Services List.