logo

Test delle prestazioni

In questa sezione impareremo a conoscere i test delle prestazioni, il motivo per cui ne abbiamo bisogno, i tipi di test delle prestazioni e il processo di test delle prestazioni.

Di seguito sono riportati gli argomenti che comprenderemo in questa sezione:

Cos'è il test delle prestazioni?

È la parte più importante dei test non funzionali.

Il controllo del comportamento di un'applicazione applicando un certo carico è noto come test delle prestazioni.

Generalmente, questo test definisce la velocità con cui il server risponde alla richiesta dell'utente.

Durante i test delle prestazioni dell'applicazione, ci concentreremo su vari fattori come Tempo di risposta, carico e stabilità dell'applicazione.

Tempo di risposta: Il tempo di risposta è il tempo impiegato dal server per rispondere alla richiesta del client.

Carico: Qui, Load significa che quando Numero N di utenti che utilizzano l'applicazione contemporaneamente o inviano la richiesta al server alla volta.

Stabilità: Per il fattore stabilità, possiamo dire che, quando un numero N di utenti utilizza l'applicazione contemporaneamente per un determinato periodo di tempo.

Quando utilizziamo i test delle prestazioni?

Effettueremo test delle prestazioni una volta che il software sarà stabile e spostato in produzione e più utenti potranno accedervi contemporaneamente, per questo motivo potrebbero verificarsi alcuni problemi di prestazioni. Per evitare questi problemi di prestazioni, il tester esegue un ciclo di test delle prestazioni.

Poiché si tratta di test non funzionali, il che non significa che utilizziamo sempre test delle prestazioni, eseguiamo test delle prestazioni solo quando l'applicazione è funzionalmente stabile.

Nota: i test delle prestazioni non possono essere eseguiti manualmente poiché i risultati costosi e accurati non possono essere mantenuti.

Tipi di test delle prestazioni

Di seguito sono riportati i tipi di test delle prestazioni:

'formula del muratore'
    Test di carico Prove di stress Test di scalabilità Test di stabilità
Test delle prestazioni

Discutiamone uno per uno per darti una comprensione completa Carico, stress, scalabilità, E Stabilità test delle prestazioni.

Test di carico

Il test di carico viene utilizzato per verificare le prestazioni di un'applicazione applicando un carico inferiore o uguale al carico desiderato, noto come test di carico.

Per esempio: Nell'immagine qui sotto, 1000 utenti sono i carico desiderato , che viene fornito dal cliente, e 3/secondo è il obiettivo che vogliamo ottenere durante l'esecuzione di un test di carico.

Test delle prestazioni

Prove di stress

Lo stress test è un test che verifica il comportamento di un'applicazione applicando un carico maggiore del carico desiderato.

Per esempio: Se prendessimo l'esempio precedente e aumentassimo il carico desiderato da 1.000 a 1.100 utenti, l'obiettivo sarebbe 4/secondo. Durante l'esecuzione dello stress test in questo scenario, esso verrà superato poiché il carico è maggiore (da 100 in su) rispetto al carico effettivo desiderato.

Test delle prestazioni

Test di scalabilità

Il controllo delle prestazioni di un'applicazione aumentando o diminuendo il carico su determinate scale (n. di un utente) è noto come test di scalabilità . I test di scalabilità verso l'alto e di scalabilità verso il basso sono chiamati test di scalabilità.

Il test di scalabilità è diviso in due parti che sono le seguenti:

    Test di scalabilità verso l'alto Test di scalabilità verso il basso

Test di scalabilità verso l'alto

Sta testando dove noi aumentare il numero di utenti su una scala particolare finché non otteniamo un punto di incidente. Utilizzeremo i test di scalabilità verso l'alto per trovare la capacità massima di un'applicazione.

Test di scalabilità verso il basso

Il test di scalabilità verso il basso viene utilizzato quando il test di carico non viene superato, quindi viene avviato diminuendo il n. di utenti in un particolare intervallo fino al raggiungimento dell'obiettivo. In modo che sia facile identificare il collo di bottiglia (bug).

Test di stabilità

Controllare le prestazioni di un'applicazione tramite applicare il carico per un determinato periodo di tempo è conosciuto come Test di stabilità .

errore: impossibile trovare o caricare la classe principale

Esempio di test delle prestazioni

Prendiamo un esempio dove lo faremo testare il comportamento di un'applicazione in cui il carico desiderato è inferiore a 1000 o uguale a 1000 utenti .

Nell'immagine qui sotto, possiamo vedere che il 100 in su gli utenti aumentano continuamente per controllare il carico massimo , che viene anche chiamato test di scalabilità verso l'alto .

    Scenario 1:Quando abbiamo 1000 utenti come carico desiderato e 2,7/sec è il tempo obiettivo, questi scenari passeranno durante l'esecuzione del test di carico perché nel test di carico ci concentreremo sul n. di utenti e come da requisito è pari a 1000 utenti.Scenario2:Nello scenario successivo, aumenteremo il carico desiderato di 100 utenti e il tempo obiettivo salirà a 3,5sec. Questo scenario passerà se eseguiamo lo stress test perché in questo caso il carico effettivo è maggiore (1100) del carico desiderato (1000).Scenario 3:In questo, se aumentiamo il carico desiderato tre volte
    1200 → 3,5sec: [non è inferiore o uguale al carico desiderato, ecco perché lo farà Fallire ]
    1300 → 4sec: [non è inferiore o uguale al carico desiderato. cioè., Fallire ]
    1400 → Schiantato
Test delle prestazioni

Nota 1: i test di volume e di assorbimento sono un tipo di test ma non un test delle prestazioni.

Test del volume

Il test del volume è un test che ci aiuta a verificare il comportamento di un'applicazione inserendo un volume enorme di carico in termini di dati è noto come test del volume e qui ci concentreremo sul numero di velocità di dati piuttosto che sul numero di utenti .

Nota 2:
Il volume è una capacità mentre il carico è una quantità, ovvero test di carico significa no. di utenti e test del volume significano quantità di dati.

Test di immersione

In questo tipo di test, controlleremo il comportamento di un'applicazione nell'ambiente, che non supporta per un lungo periodo di tempo, noto come test di assorbimento.

In genere, il test di assorbimento è un tipo di test negativo poiché sappiamo già che il server o l'ambiente non supporta.

Processo di test delle prestazioni

Il test delle prestazioni non può essere eseguito manualmente poiché:

  • Abbiamo bisogno di molte risorse e questo approccio è diventato più costoso.
  • E la precisione non può essere mantenuta quando monitoriamo manualmente il tempo di risposta.

Il processo di test delle prestazioni sarà completato nei seguenti passaggi:

  • Identificare gli scenari prestazionali
  • Pianificare e progettare script di test delle prestazioni
  • Configura l'ambiente di test e distribuisci il carico
  • Esegui script di test
  • Risultato
  • Risultato dell'analisi
  • Identificare il collo di bottiglia
  • Rieseguire il test
Test delle prestazioni

Se eseguiamo a flusso positivo del processo di test delle prestazioni, potrebbe seguire il processo seguente:

Identificare gli scenari prestazionali

Innanzitutto, identificheremo gli scenari di prestazione in base ai seguenti fattori:

Scenari più comuni: Ciò significa che possiamo trovare gli scenari di prestazione in base agli scenari comunemente utilizzati come in Applicazione Gmail; ci esibiremo accedi, inserisci la posta in arrivo, invia elementi, componi un messaggio di posta e disconnettiti .

Scenari più critici: Gli scenari critici significano un utilizzo regolare e importante per le aziende nell'applicazione Gmail accedi, componi, inbox e disconnettiti .

Enorme transazione di dati: Se disponiamo di dati enormi significa che n-numero di utenti utilizzano l'applicazione contemporaneamente.

Una volta identificati gli scenari prestazionali, passeremo al passaggio successivo.

Pianificare e progettare script di test delle prestazioni

In questo passaggio, installeremo gli strumenti nella macchina del Test Engineer e accederemo al server di test, quindi scriveremo alcuni script in base agli scenari di test ed eseguiremo lo strumento.

Una volta terminata la scrittura della sceneggiatura, andremo al passaggio successivo.

Configura l'ambiente di test e distribuisci il carico

Dopo aver scritto gli script di test, organizzeremo l'ambiente di test prima dell'esecuzione. Inoltre, gestisci gli strumenti e le altre risorse e distribuisci il carico in base al 'modello di utilizzo' o menziona la durata e la stabilità.

Esegui script di test

Una volta terminata la distribuzione del carico, eseguiremo, convalideremo e monitoreremo gli script di test.

caratteri per gimp

Risultato

Dopo aver eseguito gli script di test, otterremo il risultato del test. E controlla che il risultato raggiunga l'obiettivo nel tempo di risposta specificato o meno, e il tempo di risposta potrebbe essere massimo, medio e minimo.

Se la risposta non rispetta il tempo di risposta richiesto, procederemo con il flusso negativo dove eseguirà i passaggi seguenti:

Risultato dell'analisi

Innanzitutto, analizzeremo il risultato del test se soddisfa o meno i tempi di risposta.

Identificare il collo di bottiglia

Successivamente, identificheremo il collo di bottiglia (bug o problema di prestazioni ). E il collo di bottiglia potrebbe verificarsi a causa di questi aspetti come problema nel codice, problema hardware (disco rigido, processore RAM), problemi di rete, e il problema software (sistema operativo) . E dopo aver trovato il collo di bottiglia, ci esibiremo accordatura (correzione o regolazione) per risolvere questo collo di bottiglia.

Rieseguire il test

Una volta risolti i colli di bottiglia, esegui nuovamente gli script di test e controlla il risultato se soddisfa o meno l'obiettivo richiesto.

Il problema si verifica durante il test delle prestazioni

Durante l'esecuzione del test delle prestazioni sull'applicazione, potrebbero verificarsi alcuni problemi, denominati anche problemi problema di prestazioni .

I problemi di prestazioni sono i seguenti:

    Problema del tempo di risposta Problema di scalabilità Collo di bottiglia Problema di velocità

Problema del tempo di risposta

Il tempo di risposta indica la velocità con cui il server risponde alla richiesta del client. Se la richiesta dell'utente non viene completata entro il tempo di risposta indicato, è possibile che l'utente perda il suo interesse per un particolare software o applicazione. Ecco perché l'applicazione o il software dovrebbero avere un tempo di risposta perfetto per rispondere rapidamente alla richiesta dell'utente.

Problema di scalabilità

I problemi di scalabilità si verificano quando l'applicazione non può accettare contemporaneamente n numeri di utenti e richieste utente previste. Ecco perché lo faremo test di scalabilità verso l'alto (verificare la capacità massima dell'applicazione) e test di scalabilità verso il basso (quando l'ora prevista non corrisponde all'ora effettiva).

Collo di bottiglia

Il collo di bottiglia è il nome informale del bug, che si verifica quando l'applicazione è limitata da un singolo componente e crea un impatto negativo sulle prestazioni del sistema.

Le principali cause del collo di bottiglia sono problemi software (problemi relativi al sistema operativo), problemi hardware (problemi relativi al disco rigido, alla RAM e al processore), E problema di codifica, eccetera.

Di seguito sono riportati i colli di bottiglia prestazionali più comuni:

  • Utilizzo della memoria
  • Uso del disco
  • Utilizzo della CPU
  • Limitazioni del sistema operativo
  • Utilizzo della rete

Problemi di velocità

Quando eseguiamo test delle prestazioni sull'applicazione, l'applicazione dovrebbe essere più veloce per attirare l'interesse e l'attenzione dell'utente perché se la velocità dell'applicazione è lenta, potrebbe perdere l'interesse dell'utente nell'applicazione.

Strumenti per testare le prestazioni

Disponiamo di vari tipi di strumenti di test delle prestazioni disponibili sul mercato, alcuni dei quali sono strumenti commerciali e strumenti open source.

proprietà acide nei DBMS

Strumenti commerciali: LoadRunner[HP], WebLOAD, NeoLoad

Strumento open source: JMeter

CaricaRunner

È uno degli strumenti più potenti di test delle prestazioni, utilizzato per supportare i test delle prestazioni per un'ampia gamma di protocolli, numero di tecnologie e ambienti applicativi.

Identifica rapidamente le cause più comuni dei problemi di prestazioni. E prevede inoltre con precisione la scalabilità e la capacità dell'applicazione.

JMeter

Il software Apache JMeter è uno strumento open source, ovvero un'applicazione interamente Java progettata per caricare il comportamento del test funzionale e misurare le prestazioni.

In generale, è stato progettato per testare le applicazioni Web ma ora è stato esteso anche ad altre funzioni di test.

Apache JMeter viene utilizzato per testare le prestazioni sia delle risorse statiche che dinamiche e delle applicazioni Web dinamiche.
Può essere utilizzato per riprodurre il carico pesante su un server, rete o oggetto, gruppo di server per testarne la forza o per analizzare le prestazioni complessive sotto diversi tipi di carico.

WebCARICARE

Strumento di test WebLOAD utilizzato per testare le applicazioni Web di test di carico, test delle prestazioni e stress test.

Lo strumento WebLOAD combina prestazioni, scalabilità e integrità come un unico processo per la verifica di applicazioni web e mobili.

NeoLoad

Neotys sviluppa uno strumento di test chiamato NeoLoad. NeoLoad viene utilizzato per testare gli scenari di test delle prestazioni. Con l'aiuto di NeoLoad, possiamo trovare le aree di collo di bottiglia nel web e nel processo di sviluppo dell'app mobile.

Lo strumento di test NeoLoad è più veloce rispetto agli strumenti tradizionali.

Oltre a loro, ci sono altri strumenti Carico elettrico, strumento per lo stress web, LoadUI Pro, StresStimulus, LoadView, LoadNinja e RedLine13, che aiuta a testare le prestazioni del software o di un'applicazione.