Automazione dei test - AWS Linee guida prescrittive

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

Automazione dei test

I test automatizzati con un framework e strumenti specializzati possono ridurre l'intervento umano e massimizzare la qualità. I test automatici delle prestazioni non sono diversi dai test di automazione come i test di unità e i test di integrazione.

Utilizza DevOps le pipeline nelle diverse fasi per i test delle prestazioni.

Il diagramma del processo mostra le cinque fasi.

Le cinque fasi della pipeline di automazione dei test sono:

  1. Configurazione: utilizza gli approcci relativi ai dati di test descritti nella sezione Generazione dei dati di test per questa fase. La generazione di dati di test realistici è fondamentale per ottenere risultati di test validi. È necessario creare con cura dati di test diversi che coprano un'ampia gamma di casi d'uso e corrispondano strettamente ai dati di produzione in tempo reale. Prima di eseguire test delle prestazioni su vasta scala, potrebbe essere necessario eseguire test di prova iniziali per convalidare gli script di test, gli ambienti e gli strumenti di monitoraggio.

  2. Strumento di test: per eseguire il test delle prestazioni, seleziona uno strumento di test di carico appropriato, come JMeter o ghz. Considerate la soluzione migliore per le vostre esigenze aziendali in termini di simulazione di carichi utente reali.

  3. Esecuzione dei test: con gli strumenti e gli ambienti di test stabiliti, esegui test end-to-end delle prestazioni su una gamma di carichi utente e durate previsti. Durante tutto il test, monitora attentamente lo stato del sistema sottoposto a test. Si tratta in genere di una fase di lunga durata. Monitora i tassi di errore per l'invalidazione automatica dei test e interrompi il test se ci sono troppi errori.

    Lo strumento di test del carico fornisce informazioni sull'utilizzo delle risorse, sui tempi di risposta e sui potenziali colli di bottiglia.

  4. Rapporti sui test: raccogli i risultati dei test insieme all'applicazione e alla configurazione del test. Automatizza la raccolta della configurazione delle applicazioni, della configurazione dei test e dei risultati, il che aiuta a registrare i dati relativi ai test delle prestazioni e ad archiviarli centralmente. La gestione centralizzata dei dati sulle prestazioni aiuta a fornire informazioni approfondite e supporta la definizione programmatica dei criteri di successo per l'azienda.

  5. Pulizia: dopo aver completato un test delle prestazioni, ripristina l'ambiente e i dati di test per prepararti alle esecuzioni successive. Innanzitutto, ripristini tutte le modifiche apportate ai dati del test durante l'esecuzione. È necessario ripristinare i database e gli altri archivi di dati allo stato originale, ripristinando tutti i record nuovi, aggiornati o eliminati generati durante il test.

È possibile riutilizzare la pipeline per ripetere il test più volte finché i risultati non riflettono le prestazioni desiderate. Puoi anche utilizzare la pipeline per verificare che le modifiche al codice non compromettano le prestazioni. È possibile eseguire test di convalida del codice in orari non lavorativi e utilizzare i dati di test e osservabilità disponibili per la risoluzione dei problemi.

Le migliori pratiche includono quanto segue:

  • Registra l'ora di inizio e di fine e genera automaticamente gli URL per la registrazione. Questo ti aiuta a filtrare i dati di osservabilità nella finestra temporale appropriata. Sistemi di monitoraggio e tracciamento.

  • Inserisci gli identificatori dei test nell'intestazione mentre richiami i test. Gli sviluppatori di applicazioni possono arricchire i propri dati di registrazione, monitoraggio e tracciamento utilizzando l'identificatore come filtro nel backend.

  • Limita la pipeline a una sola esecuzione alla volta. L'esecuzione di test simultanei genera rumori che possono causare confusione durante la risoluzione dei problemi. È inoltre importante eseguire il test in un ambiente prestazionale dedicato.

Strumenti di automazione dei test

Gli strumenti di test svolgono un ruolo importante in qualsiasi automazione dei test. Le scelte più comuni per gli strumenti di test open source includono quanto segue:

  • Apache JMeter è il cavallo di battaglia. Nel corso degli anni, Apache JMeter è diventato più affidabile e ha aggiunto funzionalità. Con l'interfaccia grafica, è possibile creare test complessi senza conoscere alcun linguaggio di programmazione. Aziende come quelle che BlazeMeter supportano Apache JMeter.

  • K6 è uno strumento gratuito che offre supporto, hosting della sorgente di carico e un'interfaccia web integrata per organizzare, eseguire e analizzare i test di carico.

  • Il test di carico Vegeta segue un concetto diverso. Invece di definire la simultaneità o sovraccaricare il sistema, viene definita una determinata frequenza. Lo strumento crea quindi quel carico indipendentemente dai tempi di risposta del sistema.

  • Hey e ab, lo strumento di benchmarking del server HTTP Apache, sono strumenti di base che è possibile utilizzare dalla riga di comando per eseguire il carico specificato su un singolo endpoint. Questo è il modo più veloce per generare carico se si dispone di un server su cui eseguire gli strumenti. Funzionerà anche un laptop locale, anche se potrebbe non essere abbastanza potente da produrre un carico elevato.

  • ghz è un'utilità da riga di comando e un pacchetto Go per il test di carico e il benchmarking dei servizi gRPC.

AWS fornisce il Distributed Load Testing sulla AWS soluzione. La soluzione crea e simula migliaia di utenti connessi che generano record transazionali a un ritmo costante senza la necessità di fornire server. Per ulteriori informazioni, consulta la Solutions Library.AWS

È possibile utilizzarla AWS CodePipeline per automatizzare la pipeline di test delle prestazioni. Per ulteriori informazioni sull'automazione dei test delle API mediante l'utilizzo CodePipeline, consulta il AWS DevOps blog e la documentazione.AWS