stress testing guide
Una guida completa allo stress test per principianti:
Sottolineare qualsiasi cosa oltre un certo punto comporta gravi conseguenze per gli esseri umani, la macchina o un programma. O causa gravi danni o lo rompe completamente.
Allo stesso modo, in questo tutorial, impareremo come sottoporre a stress test le applicazioni web insieme ai suoi effetti.
Al fine di evitare danni permanenti alle tue app o ai tuoi siti web quando sono stressati, cioè molto caricati, dobbiamo trovare il punto di rottura e, a sua volta, la soluzione per evitare tali condizioni. Pensa a come sarebbe quando il tuo sito web per lo shopping non funzionasse durante i saldi di Natale. Quanto sarebbe la perdita?
Di seguito sono elencati alcuni esempi di casi reali in cui è di grande importanza sottoporre a stress test un'app o un sito Web:
c intervista domande e risposte pdf
# 1) Le app oi siti Web per lo shopping commerciale devono eseguire test di stress poiché il carico diventa molto elevato durante i festival, i saldi o il periodo di offerte speciali.
#Due) Le app oi siti Web finanziari devono eseguire lo stress test poiché il carico aumenta in momenti come quando la quota di una società aumenta, molte persone accedono ai propri account per acquistare o vendere, i siti Web di shopping online reindirizzano i 'Net-banker' per il pagamento eccetera.
# 3) Le app Web o di posta elettronica devono essere sottoposte a stress test.
# 4) Siti web o app di social network, blog, ecc. Devono essere sottoposti a stress test ecc.
Cosa imparerai:
- Che cos'è lo stress test e perché lo stress test?
- Strategia per lo stress test
- Stress test per app mobili
- Differenza tra test di carico e stress test
- Esempi di casi di test
- 5 Miglior software per test da sforzo
- Conclusione
- Lettura consigliata
Che cos'è lo stress test e perché lo stress test?
Lo stress test è definito come il processo di verifica della stabilità dell'hardware o del software in condizioni di carico elevato. Questo test viene eseguito per trovare il punto numerico in cui il sistema si romperà (in termini di numero di utenti e richieste del server, ecc.) E la relativa gestione degli errori per lo stesso.
Durante lo stress test, l'applicazione in test (AUT) viene bombardata da un carico pesante per un determinato periodo di tempo per verificare il punto di rottura e per vedere come viene eseguita la gestione degli errori.
Esempio: MS Word potrebbe visualizzare un messaggio di errore 'Non risponde' quando si tenta di copiare un file da 7-8 GB.
Hai bombardato Word con un file di dimensioni enormi e non è stato in grado di elaborare un file così grande e, di conseguenza, è stato impiccato. Normalmente uccidiamo le app dal Task Manager quando smettono di rispondere, il motivo è che le app si stressano e smettono di rispondere.
Di seguito sono riportati alcuni motivi tecnici alla base dell'esecuzione di stress test:
- Per verificare il comportamento del sistema in condizioni di carico anomale o estreme.
- Per trovare il valore numerico di utenti, richieste ecc., Dopodiché il sistema potrebbe interrompersi.
- Gestisci l'errore con gentilezza mostrando i messaggi appropriati.
- Essere ben preparati per tali condizioni e adottare misure precauzionali come la pulizia del codice, la pulizia del DB, ecc.
- Per verificare la gestione dei dati prima che il sistema si interrompa, ad esempio per vedere se i dati sono stati cancellati, salvati o meno, ecc.
- Per verificare la minaccia alla sicurezza in tali condizioni di violazione, ecc.
Strategia per lo stress test
Questo è un tipo di test non funzionale e questo test viene solitamente eseguito una volta completato il test funzionale di un sito Web o di un'app. I casi di test, il modo di testare e persino gli strumenti per testare possono variare a volte.
Di seguito sono riportati alcuni suggerimenti che potrebbero aiutarti a definire la strategia del tuo processo di test:
- Identificare gli scenari, le funzionalità, ecc. A cui si accederà maggiormente e che potrebbero tendere a danneggiare il sistema. Come per un'app finanziaria, la funzionalità più comunemente utilizzata è il trasferimento di denaro.
- Identificare il carico che il sistema può subire in un dato giorno, cioè sia massimo che minimo.
- Crea un file separato piano di test , scenario, test case e test suite.
- Utilizzare 3-4 diversi sistemi di computer per testare con memoria, processore, ecc.
- Utente 3-4 browser diversi per app Web con versioni diverse.
- Idealmente, trova il valore sotto il punto di interruzione, in corrispondenza del punto di interruzione e il valore dopo il punto di interruzione (quando il sistema non risponderà affatto), creare un banco di prova e dati attorno a questi.
- Nel caso delle app web, prova a fare stress test anche con una rete lenta.
- Non saltare alla conclusione dei test in un solo round o due, esegui gli stessi test per almeno 5 round e poi concludi i tuoi risultati.
- Trova il tempo di risposta ideale del server web e qual è il tempo al punto di interruzione.
- Trova il comportamento dell'app al punto di rottura in diversi punti dell'app, ad esempio durante il semplice avvio dell'app, l'accesso, l'esecuzione di alcuni accessi dopo l'azione, ecc.
Stress test per app mobili
Lo stress test per le app mobili native è leggermente diverso da quello delle app web. Nelle app native, viene eseguito uno stress test per gli schermi di uso comune aggiungendo enormi dati.
Di seguito sono riportate alcune verifiche eseguite come parte di questo test per le app mobili native:
- L'app non si arresta in modo anomalo quando vengono visualizzati dati di grandi dimensioni. Come per un'app di posta elettronica, circa 4-5 lakh di carte e-mail ricevute, per app per lo shopping, la stessa quantità di carte oggetto ecc.
- Lo scorrimento è privo di errori e l'app non si blocca durante lo scorrimento verso l'alto o verso il basso.
- L'utente dovrebbe essere in grado di visualizzare i dettagli di una carta o eseguire alcune azioni sulla carta dall'enorme elenco.
- Inviare centinaia di migliaia di aggiornamenti dall'app al server come contrassegnare un articolo come 'Preferito', aggiungere un articolo al carrello, ecc.
- Prova a caricare l'app con enormi dati su una rete 2G, quando l'app si blocca o si arresta in modo anomalo, dovrebbe mostrare un messaggio appropriato.
- Prova uno scenario end-to-end quando ci sono dati enormi e una rete 2G lenta, ecc.
Di seguito dovrebbe essere la tua strategia per i test sulle app mobili:
- Identifica gli schermi che hanno carte, immagini ecc., In modo da indirizzare quegli schermi con dati enormi.
- Allo stesso modo, identificare le funzionalità che verranno utilizzate più comunemente.
- Durante la creazione del banco di prova, prova a utilizzare telefoni di fascia media e bassa.
- Prova a testare contemporaneamente su dispositivi paralleli.
- Evita questo test su emulatore e simulatori.
- Evita di testare le connessioni Wi-Fi poiché sono potenti.
- Prova a eseguire almeno uno stress test sul campo, ecc.
Differenza tra test di carico e stress test
S.No. | Stress Testing | Test di carico |
---|---|---|
1 | Questo test viene eseguito per scoprire il punto di rottura del sistema. | Questo test viene eseguito per verificare le prestazioni del sistema sotto un carico previsto. |
Due | Questo test viene eseguito per scoprire se il sistema si comporterà come previsto se il carico supera il limite normale. | Questo test viene eseguito per controllare il tempo di risposta del server per il carico specifico previsto. |
3 | Anche la gestione degli errori viene verificata in questo test. | La gestione degli errori non viene testata intensamente. |
4 | Questo controlla anche per minacce alla sicurezza, perdite di memoria ecc. | Nessun test di questo tipo è obbligatorio. |
5 | Verifica la stabilità dei sistemi. | Verifica l'affidabilità del sistema. |
6 | Il test viene eseguito con più del max. possibile no di utenti, richieste ecc. | Il test viene eseguito con il numero massimo di utenti, richieste ecc. |
Prova di stress vs prova di carico
Esempi di casi di test
I casi di test che creerai per i tuoi test dipenderanno dall'applicazione e dai suoi requisiti. Prima di creare i casi di test, assicurarsi di conoscere le aree di interesse, ovvero le funzionalità che tenderanno a rompersi in condizioni di carico anormale.
Di seguito sono riportati alcuni casi di test di esempio che puoi includere nei tuoi test:
- Verificare se viene visualizzato un messaggio di errore appropriato quando il sistema raggiunge il punto di interruzione, ovvero supera il n. di utenti o richieste consentiti.
- Controlla il caso di test sopra per varie combinazioni di RAM, processore e rete ecc.
- Verificare se il sistema funziona come previsto quando massimo no. degli utenti o delle richieste sono in corso di elaborazione. Controlla anche il caso di test sopra per varie combinazioni di RAM, processore e rete ecc.
- Verificare che mentre oltre il consentito n. degli utenti o delle richieste stanno eseguendo la stessa operazione (come acquistare gli stessi articoli da un sito web di shopping o effettuare un trasferimento di denaro, ecc.) e se il sistema diventa irresponsabile, viene visualizzato un messaggio di errore appropriato sui dati (non salvati? - dipende dal implementazione).
- Verificare se più del consentito n. degli utenti o delle richieste stanno eseguendo operazioni diverse (come un utente sta accedendo, un utente sta avviando l'app o il collegamento web, un utente sta selezionando un prodotto ecc.) e se il sistema diventa irresponsabile, viene mostrato un messaggio di errore appropriato sui dati (non salvato? - dipende dall'implementazione).
- Verificare se il tempo di risposta per gli utenti o le richieste del punto di rottura è in un valore di accettazione.
- Verifica le prestazioni dell'app o del sito web quando la rete è molto lenta, dovrebbe essere visualizzato un messaggio di errore appropriato per la condizione di 'timeout'.
- Verificare tutti i casi di test di cui sopra per un server su cui è in esecuzione più di un'applicazione per verificare se l'altra applicazione viene interessata, ecc.
Prima di eseguire i test, assicurarsi che:
- Tutti i guasti funzionali dell'applicazione in prova vengono corretti e verificati.
- Il sistema completo end-to-end è pronto e l'integrazione è testata.
- Non vengono eseguiti nuovi check-in del codice che influenzeranno il test.
- Gli altri team vengono informati sulla pianificazione dei test.
- I sistemi di backup vengono creati in caso di alcuni problemi gravi.
5 Miglior software per test da sforzo
Quando lo stress test viene eseguito manualmente, è anche un lavoro molto complicato e noioso. Potrebbe anche non fornire i risultati attesi.
Gli strumenti di automazione possono ottenere i risultati attesi ed è relativamente facile creare il banco di prova richiesto utilizzandoli. Può accadere che gli strumenti che stai utilizzando per i tuoi normali test funzionali non siano sufficienti per i test di stress.
Quindi sta a te e al tuo team decidere se desiderano uno strumento separato esclusivamente per questo test. È anche vantaggioso per gli altri gestire la suite di notte in modo che il loro lavoro non venga ostacolato. Utilizzando gli strumenti di automazione, puoi programmare l'esecuzione della suite di notte e i risultati saranno pronti per te il giorno successivo.
Di seguito è riportato un elenco degli strumenti più consigliati:
# 1) Load Runner:
LoadRunner è uno strumento progettato da HP per i test di carico, ma può essere utilizzato anche per i test di stress.
Utilizza VuGen, ovvero Virtual User Generator per creare gli utenti e le richieste di test di carico e stress. Questo strumento ha buoni rapporti di analisi che possono aiutare a disegnare i risultati sotto forma di grafici, grafici, ecc.
# 2) Neoload:
Neoload è uno strumento a pagamento utile per testare app web e mobili.
Può simulare più di 1000 utenti per verificare le prestazioni del sistema e trovare il tempo di risposta del server. Si integra anche con Cloud sia per i test di carico che per quelli di stress. Fornisce una buona scalabilità ed è molto facile da usare.
# 3) JMeter:
JMeter è uno strumento open source che funziona con JDK 5 e versioni successive. L'obiettivo di questo strumento è principalmente il test delle applicazioni web. Può anche essere utilizzato per testare connessioni a database LDAP, FTP, JDBC, ecc.
# 4) Macinacaffè:
Grinder è uno strumento open source e basato su Java utilizzato per test di carico e stress.
La parametrizzazione può essere eseguita dinamicamente durante l'esecuzione dei test. Ha buoni rapporti e affermazioni per aiutarti ad analizzare i risultati in un modo migliore. Dispone di una console che può essere utilizzata come IDE per creare e modificare i test e gli agenti per creare il carico a scopo di test.
# 5) WebLoad:
Webload lo strumento ha un'edizione gratuita e una a pagamento. Questa edizione gratuita consente la creazione di un massimo di 50 utenti.
Questo strumento supporta il controllo dello stress sia per il web che per le app mobili. Supporta diversi protocolli come HTTP, HTTPS, PUSH, AJAX, HTML5, SOAP ecc. Ha un IDE, console di generazione del carico, dashboard di analisi e integrazioni (da integrare con Jenkins, strumenti APM ecc.).
Conclusione
Lo stress test si concentra completamente sul test del sistema in condizioni di carico estremo per trovare il suo punto di rottura e vedere se vengono visualizzati messaggi appropriati quando il sistema non risponde. Sottolinea la memoria, il processore, ecc. Durante il test e controlla quanto bene si ripristinano.
Lo stress test è un tipo di test non funzionale e di solito viene eseguito dopo il test funzionale. Quando è richiesto anche il test di carico, questo test può essere eseguito come caso estremo di test di carico. Il 90% delle volte, lo stesso strumento di automazione può essere utilizzato sia per i test di carico che per quelli da sforzo.
jenkins intervista domande e risposte per esperti
Spero che tu abbia acquisito una grande comprensione del concetto di stress test !!
Lettura consigliata
- Test di carico con HP LoadRunner Tutorial
- Test delle prestazioni vs test di carico vs stress test (differenza)
- Guida completa al test di carico per principianti
- Migliori strumenti di test del software 2021 [Strumenti di automazione del test QA]
- Alpha test e beta test (una guida completa)
- Guida per principianti al penetration test di applicazioni Web
- Carico di applicazioni web, stress e test delle prestazioni utilizzando WAPT
- Test funzionale vs test non funzionale