Definire i test di carico in base ai flussi utente chiave

Completato

Il test di carico è una parte importante della convalida continua. Per iniziare, devi identificare i flussi dell'applicazione. In questa unità imparerai sui flussi utente e di sistema, sui motivi per cui sono importanti e sui criteri di disegno per i test.

Che cosa sono i flussi di applicazioni?

Un flusso è costituito da interazioni dell'applicazione necessarie per completare un'attività.

  • Flusso utente

    Questi flussi indicano come gli utenti interagiscono con la tua applicazione. Nello scenario Contoso Shoes il processo di checkout per gli articoli di acquisto è un esempio di flusso utente. Ha questi componenti che partecipano nella gestione dell'inventario:

    • Applicazione Web front-end
    • Logica del checkout in Funzioni di Azure
    • Database back-end in Azure Cosmos DB

    Dal punto di vista cruciale, questi componenti devono essere altamente disponibili e resilienti agli errori. Ad esempio, la pagina Web front-end deve essere caricata rapidamente perché l'organizzazione prevede un numero elevato di utenti simultanei.

  • Flusso di sistema

    Questi flussi non vengono generalmente affrontati dall'utente, ma un'interruzione o una riduzione delle prestazioni dei componenti del flusso di sistema può avere un impatto sull'esperienza utente. Ad esempio, un'attività asincrona che preleva gli ordini da un database e genera etichette di indirizzo.

Nota

La maggior parte delle applicazioni hanno più flussi. Ogni flusso può toccare vari componenti dell'architettura. Inoltre, un componente può essere visualizzato in più di un flusso. È importante riconoscere quali flussi sono affettati quando un componente fallisce.

Definisci un test di carico e i relativi valori soglia

Un test di carico simula il traffico reale per testare le prestazioni dell'applicazione. Tuttavia, l'obiettivo non è generare un carico di grandi dimensioni per interrompere il tuo sistema. Tale obiettivo può essere raggiunto tramite test di stress.

Un test di carico può aiutare a identificare le prestazioni, i limiti delle prestazioni, l'utilizzo delle risorse e il comportamento di ridimensionamento ottimale dei componenti di un flusso utente. Il tuo test di carico deve riflettere ogni flusso utente e flusso di sistema pertinenti. Una buona progettazione richiede una conoscenza dell'applicazione. Iniziare ponendo domande, ad esempio:

  • Quali chiamate API devono essere effettuate?
  • Qual è la sequenza delle chiamate API?
  • Quali dati di test devono essere usati con le chiamate API?

In base alle risposte:

  1. Identifica scenari chiave, dipendenze, utilizzo previsto, disponibilità, prestazioni e target di scalabilità.

  2. Definisci un set di valori soglia misurabili per quantificare le prestazioni previste degli scenari chiave. Ad esempio, per un componente dell'applicazione, puoi considerare i valori soglia per il numero previsto di account di accesso utente, le richieste per secondo di un'API e le operazioni per secondo di un processo in background.

  3. Usa i valori soglia per definire un test di carico che genera un traffico realistico per il test delle prestazioni dell'applicazione, validando le operazioni di scalabilità previste e le attività correlate. Usa questi valori soglia per sviluppare un modello di integrità per l'applicazione che copre sia i test che la produzione.

    Nell'esempio di flusso del processo di checkout è possibile impostare la soglia della durata media del caricamento della pagina per ogni passaggio in modo che sia inferiore a 500 millisecondi e supportare fino a 100 utenti simultanei.

Con tutti i valori di soglia definiti, è ora possibile implementare i test di carico. Questo modulo usa il Test di carico di Azure.

Sebbene puoi configurare e implementare il Test di carico di Azure tramite il portale di Azure, è consigliabile adottare un approccio programmatico. Usare le API per implementare, configurare ed eseguire i test in modo automatico. Questo approccio viene illustrato nell'unità successiva.

Verifica delle conoscenze

1.

Sono tutti i flussi utente e di sistema ugualmente importanti?

2.

Un'interruzione di un componente risulta sempre in una riduzione delle prestazioni del servizio?

3.

Può un test di carico aiutarti a valutare le prestazioni previste di un flusso utente?