Ci sono principalmente due approcci per le prestazioni su una domanda:
Performance test e test di sistema
In cosa differiscono? Beh, è facile, si basa sul loro scopo, lo scopo dei test di prestazione è limitato e altamente realistico. Esempio: testare il gestore di IncomingMessage su alcune App X, per questo si configurerebbe un test che invia i meesages a questo gestore su base X, Y, Z. Questo approccio ti aiuterà a individuare i problemi e a misurare le prestazioni delle singole e limitate zone sulla tua applicazione.
Quindi questo ora dovrebbe portarti alla domanda, quindi sono io a fare un punto di riferimento e testare i singoli componenti della mia app individualmente? Sì, se ritieni che il comportamento del componente sia fondamentale e che le modifiche alle versioni più recenti possano indurre delle penalizzazioni in termini di prestazioni. Ma, se vuoi avere un'idea della tua applicazione nel suo insieme, il gruppo di componenti che interagiscono tra loro e vedere come vengono fuori le prestazioni, allora hai bisogno di un test di sistema.
Un test di sistema cercherà sempre di riprodurre il più vicino possibile qualsiasi ambiente di produzione del cliente. Qui puoi osservare che aspetto ha il mondo reale delle prestazioni della tua app e agire di conseguenza per correggerlo.
Quindi, come conclusione, imposta un test di sistema sulla tua app e misura quello che stavi dicendo che volevi misurare. Quindi Sottolinea il sistema nel suo complesso e osserva come reagisce, sarai sorpreso dal risultato.
Infine, testare individualmente i componenti critici identificati o che si desidera tenere traccia della propria app.
Come linea guida generale, quando si eseguono le prestazioni si dovrebbe sempre: 1.- Ottenere una linea di base per il sistema su uno stato inattivo. 2.- Ottenere una previsione per il sistema in base al normale carico previsto. 3.- Ottenere una linea di base per il sistema in condizioni di stress.
Tenere presente che i risultati del carico normale devono essere estrapolati alle condizioni di stress e un sistema piacevole sarà sempre quello che scala linearmente.
Spero che questo aiuti.
P.S. I test, la configurazione dell'ambiente e persino la raccolta dei dati dovrebbero essere il più completamente automatici possibile, questo vi aiuterà a gestirlo in base a ciò e impiegherà tempo a diagnosticare problemi di prestazioni e non a impostare il test.
Vorrei raccomandare Apache JMeter http://jmeter.apache.org/ come uno strumento di test di stress eccellente per le applicazioni web. È facile da usare e può essere esteso. – Rami
Ho trovato che Gatling (http://gatling.io) è uno strumento eccellente. – cmd