Cos'รจ il test di carico? (Esempi)
โก Riepilogo intelligente
Il test di carico misura il comportamento di un'applicazione software quando molti utenti vi accedono contemporaneamente, fino al picco previsto. Permette di identificare la capacitร operativa massima, i colli di bottiglia che la limitano e di verificare se l'infrastruttura attuale รจ sufficiente.

Cos'รจ il test di carico?
Caricare i test รจ un processo di test software non funzionale in cui le prestazioni dell'applicazione software vengono testate sotto uno specifico carico previsto. Determina il comportamento dell'applicazione software mentre piรน utenti vi accedono contemporaneamente. L'obiettivo del test di carico รจ migliorare i colli di bottiglia delle prestazioni e garantire stabilitร e funzionamento regolare dell'applicazione software prima della distribuzione.
Questo test di solito identifica:
- La capacitร operativa massima di un'applicazione
- Determinare se l'infrastruttura attuale รจ sufficiente per eseguire l'applicazione
- Sostenibilitร dell'applicazione rispetto al carico massimo di utenti
- Numero di utenti simultanei che un'applicazione puรฒ supportare e scalabilitร per consentire a piรน utenti di accedervi.
ร un tipo di test non funzionale. Nell'ingegneria del software, il test di carico viene comunemente utilizzato per applicazioni client/server basate sul Web, sia Intranet che Internet.
Perchรฉ รจ necessario eseguire test di carico?
Alcuni siti estremamente popolari hanno subito gravi tempi di inattivitร quando ottengono enormi volumi di traffico. I siti web di e-commerce investono molto nelle campagne pubblicitarie, ma non nei test di carico per garantire prestazioni ottimali del sistema, quando il marketing porta traffico.
Esempi di test di carico
- Toysrus.com non รจ riuscito a gestire il traffico generato dalla propria campagna pubblicitaria, perdendo sia il budget di marketing che le vendite previste.
- Il sito web di una compagnia aerea non รจ stato in grado di gestire piรน di 10000 utenti durante l'offerta di un festival.
- L'Enciclopedia Britannica ha dichiarato l'accesso gratuito al suo database online come offerta promozionale. Non sono riusciti a tenere il passo con l'assalto del traffico per settimane.
Molti siti subiscono tempi di caricamento ritardati quando incontrano traffico intenso. Pochi fatti โ
- Il tasso di abbandono aumenta drasticamente dopo circa 3 secondi di caricamento della pagina, e l'effetto si accentua sulle connessioni mobili.
- Le pagine lente costano ai siti di e-commerce un fatturato misurabile a ogni visita, ed รจ per questo che le prestazioni sono considerate un parametro aziendale piuttosto che tecnico.
Perchรฉ eseguire i test di carico?
- I test di carico danno fiducia nel sistema, nella sua affidabilitร e prestazioni.
- Il test di carico aiuta a identificare i colli di bottiglia nel sistema in scenari di stress intenso degli utenti prima che si verifichino in un ambiente di produzione.
- I test di carico offrono un'eccellente protezione contro scarse prestazioni e consentono strategie complementari per la gestione delle prestazioni e il monitoraggio di un ambiente di produzione.
Obiettivi del test di carico
I test di caricamento identificano i seguenti problemi prima di spostare l'applicazione sul mercato o in produzione:
- Tempo di risposta per ogni transazione
- Prestazioni dei componenti del sistema sotto carichi diversi
- Prestazioni dei componenti del database sotto carichi diversi
- Ritardo di rete tra il client e il server
- Problemi di progettazione del software
- Problemi di configurazione del server come un server Web, un server delle applicazioni, un server di database ecc.
- Problemi di limitazione hardware come massimizzazione della CPU, limitazioni di memoria, collo di bottiglia della rete, ecc.
Il test di carico determinerร se il sistema necessita di essere messo a punto o se รจ necessaria una modifica dell'hardware e del software per migliorare le prestazioni. Per condurre in modo efficace i test di carico, รจ possibile utilizzarne diversi strumenti di test delle prestazioni disponibili per aiutarti a identificare le aree di miglioramento.
Prerequisiti per i test di carico
La metrica principale per il test di carico รจ il tempo di risposta. Prima di iniziare il test di carico, รจ necessario determinare:
- Se il tempo di risposta รจ giร misurato e confrontato โ Quantitativo
- Se il tempo di risposta รจ applicabile al processo aziendale โ Rilevante
- Se il tempo di risposta รจ giustificabile โ Realistico
- Se il tempo di risposta รจ realizzabile โ Raggiungibile
- Se il tempo di risposta รจ misurabile utilizzando uno strumento o un cronometro: misurabile
Configurazione dell'ambiente prima del test di carico.
| Piattaforma hardware | Configurazione software |
|---|---|
|
|
Strategie di test di carico
Esistono molti modi per eseguire test di carico. Di seguito sono riportate alcune strategie di test di carico:
- Test di carico manuale: Questa รจ una delle strategie per eseguire test di carico, ma non produce risultati ripetibili, non puรฒ fornire livelli misurabili di stress su un'applicazione ed รจ un processo impossibile da coordinare.
- Strumenti di test di carico sviluppati internamente: Un'organizzazione, che comprende l'importanza dei test di carico, puรฒ creare i propri strumenti per eseguire test di carico.
- Strumenti di test di carico open source: Sono disponibili diversi strumenti di test del carico come open source gratuiti. Potrebbero non essere sofisticati come le loro controparti a pagamento, ma se hai un budget limitato, sono la scelta migliore.
- Strumenti per test di carico di classe enterprise: Di solito sono dotati di funzionalitร di acquisizione/riproduzione. Supportano un gran numero di protocolli. Possono simulare un numero eccezionalmente elevato di utenti.
Come eseguire il test di carico
Il processo di test di carico puรฒ essere brevemente descritto come di seguito:
- Crea un file dedicato Ambiente di test per prove di carico
- Definire gli scenari di test di carico
- Determinare le transazioni di test di carico per un'applicazione
- Preparare i dati per ogni transazione
- ร necessario prevedere il numero di utenti che accedono al sistema
- Determina la velocitร di connessione. Alcuni utenti possono essere collegati tramite linee affittate mentre altri possono utilizzare la connessione remota
- Determinare i diversi browser e sistemi operativi utilizzati dagli utenti
- Una configurazione di tutti i server come server Web, applicazioni e DB
- Esecuzione e monitoraggio dello scenario di test. Raccolta di vari parametri
- Analizzare i risultati. Formula raccomandazioni
- Ottimizzare il sistema
- Riprova
Linee guida per i test di carico
- Il test di carico dovrebbe essere pianificato una volta che l'applicazione diventa funzionalmente stabile.
- Nel pool di dati dovrebbe essere pronto un gran numero di dati univoci
- Il numero di utenti dovrebbe essere deciso per ogni scenario o script
- Evitare la creazione di log dettagliati per conservare lo spazio di I/O su disco
- Cerca di evitare il download di immagini nel sito
- Nel processo di esecuzione dei casi di test del test di carico, รจ necessario registrare la coerenza del tempo di risposta nel periodo trascorso e confrontarlo con varie esecuzioni di test.
Differenza tra test di carico e stress
| Caricare i test | Test di stress |
|---|---|
| Il test di carico identifica i colli di bottiglia nel sistema sotto vari carichi di lavoro e controlla come il sistema reagisce quando il carico viene gradualmente aumentato | Test di stress determina il punto di rottura del sistema per rivelare il punto massimo oltre il quale si rompe. |
| Per riconoscere il limite superiore del sistema, imposta lo SLA dell'app e controlla come il sistema puรฒ gestire un carico pesante. | Per verificare come si comporta il sistema sotto carichi estremi e come si riprende dopo un guasto. |
| Generare un carico maggiore su un'applicazione web รจ lo scopo principale del test di carico. | Lo stress test mira a garantire che sotto un carico elevato improvviso per una durata considerevole i server non si blocchino. |
| Gli attributi che vengono controllati in un test di carico sono le prestazioni massime, la quantitร di server e il tempo di risposta. | Questo tipo di test verifica il tempo di risposta della stabilitร , ecc. |
| Nel test di carico il limite di carico รจ una soglia di interruzione. | Nello stress test il limite di carico รจ superiore alla soglia di rottura. |
Differenza tra test funzionali e di carico
| Test di funzionalitร | Caricare i test |
|---|---|
| I risultati dei test funzionali sono facilmente prevedibili poichรฉ sono stati definiti passaggi e precondizioni adeguati | I risultati dei test di carico sono imprevedibili |
| I risultati dei test funzionali variano leggermente | I risultati del test di carico variano drasticamente |
| Frequenza di esecuzione Test di funzionalitร sarร alto | La frequenza di esecuzione dei test di carico sarร bassa |
| I risultati dei test funzionali dipendono dai dati del test | Il test di carico dipende dal numero di utenti. |
Strumenti di test di carico
LoadRunner
LoadRunner, originariamente di HP e ora parte di OpenText In seguito all'acquisizione di Micro Focus, il sistema testa le applicazioni in condizioni di carico normale e di picco. Genera carico tramite utenti virtuali che emulano il traffico di rete reale e riporta i risultati in forma grafica.
Leggi di piรน in Tutorial di LoadRunner.
Apache JMeter
Un open-source Java strumento e l'opzione gratuita piรน utilizzata. Supporta HTTP, JDBC, JMS, FTP e altro, memorizza i piani di test come XML e si integra nelle pipeline CI. Vedi il JMeter lezione per una guida dettagliata.
Gatling
Uno strumento open-source i cui test sono scritti come codice in Scala o JavaGestisce un elevato numero di processi simultanei anche su hardware di fascia bassa e produce report HTML dettagliati, il che รจ ideale per i team che preferiscono script di test con controllo di versione.
k6
Uno strumento open-source con test scritti in JavaScript progettato per i test di performance gestiti dagli sviluppatori all'interno di una pipeline CI, piuttosto che come attivitร di QA separata.
Scegliere uno strumento
Pick JMeter Per la massima copertura dei protocolli senza costi aggiuntivi, si possono utilizzare Gatling o k6 quando il team desidera che i test siano mantenuti nel sistema di controllo versione insieme all'applicazione, mentre uno strumento commerciale come LoadRunner รจ indicato quando il supporto per i protocolli aziendali e l'assistenza del fornitore giustificano la licenza.
Vantaggi e svantaggi delle prove di carico
Di seguito sono riportati i vantaggi del test di carico:
- Identificazione dei colli di bottiglia delle prestazioni prima della produzione
- Migliora la scalabilitร del sistema
- Ridurre al minimo i rischi legati ai tempi di inattivitร del sistema
- Costi ridotti in caso di fallimento
- Aumenta la soddisfazione del cliente
Svantaggi del test di carico:
- La maggior parte degli strumenti richiede conoscenze di programmazione per poter creare script che riproducano scenari realistici.
- Gli strumenti possono essere costosi poichรฉ i prezzi dipendono dal numero di utenti virtuali supportati.
Parametri chiave da rilevare durante un test di carico
La sezione dei prerequisiti stabilisce che il tempo di risposta รจ la metrica principale. In pratica, un report di test di carico deve avere sei cifre, perchรฉ il solo tempo di risposta non รจ sufficiente a spiegare il motivo del rallentamento del sistema.
| Metrico | Cosa ti dice | Segnale di pericolo |
|---|---|---|
| Tempo medio di risposta | L'esperienza utente tipica | Aumenta all'aumentare del carico |
| tempo di risposta al 95ยฐ percentile | L'esperienza degli utenti piรน lenti | Ben al di sopra della media |
| Throughput | Richieste gestite con successo al secondo | Appiattimento o abbassamento all'aumentare del carico |
| Tasso di errore | Percentuale di richieste non riuscite o scadute | Qualsiasi aumento al di sopra della soglia concordata |
| Utenti concorrenti | Sessioni simultanee effettivamente raggiunte | Inferiore allo scenario previsto |
| Utilizzo delle risorse del server | Margini di manovra per CPU, memoria, disco e rete. | Qualsiasi risorsa superiore a circa l'80% |
Visualizza la velocitร di elaborazione insieme al tempo di risposta. L'aumento del tempo di risposta con l'aumento del throughput significa semplicemente che il sistema รจ piรน occupato. L'aumento del tempo di risposta con caduta Il superamento della capacitร massima indica che il sistema ha superato la sua capacitร massima e sta perdendo lavoro, ed รจ proprio questo il punto che il test si propone di individuare.
Non riportare mai solo la media. Una media di 900 ms con un 95ยฐ percentile di 1.1 secondi descrive un sistema coerente. La stessa media con un 95ยฐ percentile di 11 secondi significa che un utente su venti sta avendo un'esperienza inaccettabile che la media non nasconde.
Come si confronta questo test con altri test di performance?
I test di prestazione sono una famiglia di test che si differenziano per la forma del carico applicato, motivo per cui sono cosรฌ facilmente confusi.
| Tipo di test | Cosa aumenta? | Domanda a cui risponde |
|---|---|---|
| Test di carico | Utenti simultanei, fino al picco previsto | Raggiunge gli obiettivi prefissati in condizioni di traffico di punta normali? |
| Test volumetrico | Dati contenuti nel database | Riesce a gestire la crescita del set di dati? |
| Test da sforzo | Caricare oltre la capacitร , fino al cedimento | Dove si rompe e in che modo? |
| Test delle punte | Carica, istantaneamente ed estremamente | Riesce a sopravvivere e a riprendersi da uno shock? |
| Test di resistenza | Durata, a carico normale | Le prestazioni si degradano nel tempo? |
| Test di immersione | Durata, risorse di visualizzazione | Sono presenti perdite di memoria o di handle? |
| Test di stabilitร | Condizioni variabili | Rimane affidabile al variare delle condizioni? |
La distinzione che conta di piรน qui รจ: I test di volume scalano i dati, i test di carico scalano il numero di utenti. Un report che impiega due secondi per elaborare diecimila righe e due minuti per elaborarne dieci milioni presenta un problema di volume, non di carico, e nessuna quantitร di capacitร aggiuntiva del server potrร risolverlo.



