what is scalability testing
Introducció a les proves d’escalabilitat:
La prova d’escalabilitat és una metodologia de prova no funcional en què es mesura el rendiment d’una aplicació en funció de la seva capacitat per augmentar o reduir el nombre de sol·licituds d’usuaris o altres atributs de mesura de rendiment d’aquest tipus.
Les proves d’escalabilitat es poden realitzar a nivell de maquinari, programari o base de dades.
Els paràmetres utilitzats per a aquesta prova difereixen d’una aplicació a l’altra, per a una pàgina web, pot ser el nombre d’usuaris, l’ús de la CPU i l’ús de la xarxa, mentre que per a un servidor web seria el nombre de sol·licituds processades.
Aquest tutorial us proporcionarà una visió general completa de Proves d’escalabilitat, juntament amb els seus atributs i els diversos passos que comporta la realització de la prova, amb exemples pràctics que us permetin entendre el concepte d’una manera millor.
Què aprendreu:
- Proves d’escalabilitat i proves de càrrega
- Atributs de prova d’escalabilitat
- Passos per provar l’escalabilitat d’una aplicació
- Conclusió
- Lectura recomanada
Proves d’escalabilitat i proves de càrrega
La prova de càrrega mesura l'aplicació que es prova sota una càrrega màxima a la qual el sistema es bloquejaria. El propòsit principal de les proves de càrrega és identificar el punt màxim després del qual els usuaris no podrien utilitzar el sistema.
Tant la càrrega com l’escalabilitat vénen sota la metodologia de proves de rendiment.
L’escalabilitat difereix de la prova de càrrega pel fet que la prova d’escalabilitat mesura el sistema a les càrregues mínima i màxima a tots els nivells, inclosos els nivells de programari, maquinari i base de dades. Un cop esbrina la càrrega màxima, els desenvolupadors han de respondre adequadament per assegurar-se que el sistema sigui escalable després d’una càrrega particular.
Exemple: Si les proves d’escalabilitat determinen que la càrrega màxima és de 10.000 usuaris, per tal que el sistema sigui escalable, els desenvolupadors han de prendre mesures sobre factors com la disminució del temps de resposta després d’assolir el límit de 10.000 usuaris o l’augment de la mida de la memòria RAM per adaptar-se a les dades d’usuari creixents.
La prova de càrrega implica col·locar una càrrega màxima a les aplicacions desenvolupades alhora, mentre que les proves d’escalabilitat consisteixen a augmentar progressivament la càrrega durant un període de temps.
La prova de càrrega determina el punt en què l’aplicació es bloqueja, mentre que l’escalabilitat intenta identificar el motiu del bloqueig de l’aplicació i prendre mesures per resoldre el problema.
En resum, les proves de càrrega ajuden a identificar els problemes de rendiment, mentre que les proves d’escalabilitat ajuden a identificar si el sistema pot escalar fins al nombre creixent d’usuaris.
Atributs de prova d’escalabilitat
Els atributs de la prova d’escalabilitat defineixen les mesures de rendiment basades en les quals es realitzaran aquestes proves.
A continuació es detallen alguns dels atributs comuns:
1) Temps de resposta:
- El temps de resposta és el temps entre la sol·licitud de l'usuari i la resposta de l'aplicació. Aquesta prova es fa per identificar el temps de resposta del servidor sota càrrega mínima, càrrega llindar i càrrega màxima per identificar el punt en què es trencaria l'aplicació.
- El temps de resposta pot augmentar o disminuir en funció de la càrrega variable de l’usuari a l’aplicació. L’ideal seria que el temps de resposta d’una aplicació disminueixi a mesura que la càrrega de l’usuari augmenta.
- Es pot considerar que una aplicació és escalable si pot proporcionar el mateix temps de resposta per a diferents nivells de càrrega de l'usuari.
- En el cas d’entorns agrupats on la càrrega de l’aplicació es distribueix entre diversos components del servidor, les proves d’escalabilitat han de mesurar fins a quin punt l’equilibrador de càrrega distribueix la càrrega entre diversos servidors. D’aquesta manera, s’assegurarà que no s’està sobrecarregant un servidor de sol·licituds mentre l’altre servidor està inactiu esperant que arribi una sol·licitud.
- El temps de resposta de cada component del servidor s’ha de mesurar acuradament si l’aplicació s’allotja en un entorn en clúster i les proves d’escalabilitat han d’assegurar-se que el temps de resposta de cada component del servidor ha de ser el mateix independentment de la quantitat de càrrega col·locada a cada servidor.
- Exemple: El temps de resposta es pot mesurar com el temps en què l'usuari introdueix l'URL en un navegador web fins al temps fins que la pàgina web triga a carregar el contingut. Menys temps de resposta, més alt serà el rendiment d'una aplicació.
2) Rendiment:
- El rendiment és la mesura d’un nombre de sol·licituds processades en una unitat de temps per l’aplicació.
- El resultat del rendiment pot diferir d’una aplicació a una altra. Si es tracta d'una aplicació web, el rendiment es mesura en termes del nombre de sol·licituds d'usuaris processades per unitat de temps i si es tracta d'una base de dades. el rendiment es mesura en termes d'un nombre de consultes processades en unitat de temps.
- Es considera que una aplicació és escalable si pot proporcionar el mateix rendiment per a diferents nivells de càrrega a les aplicacions internes, el maquinari i la base de dades.
3) Ús de la CPU:
- L’ús de la CPU és una mesura de la utilització de la CPU per realitzar una tasca d’una aplicació. La utilització de la CPU sol mesurar-se en termes de la unitat MegaHertz.
- Idealment, com més optimitzat sigui el codi de l’aplicació, menor serà la utilització de la CPU.
- Per aconseguir-ho, moltes organitzacions utilitzen pràctiques de programació estàndard per minimitzar la utilització de la CPU.
- Exemple: Eliminació de codi mort a l'aplicació i minimització de l'ús de Thread. Els mètodes de repòs són una de les millors pràctiques de programació per minimitzar la utilització de la CPU.
4) Ús de memòria:
- L’ús de memòria és una mesura de la memòria consumida per realitzar una tasca per part d’una aplicació.
- Idealment, la memòria es mesura en termes de bytes (MegaBytes, GigaBytes o Tera Bytes) que utilitza l'aplicació desenvolupada per accedir a la memòria d'accés aleatori (RAM).
- L'ús de memòria d'una aplicació es pot minimitzar seguint les millors pràctiques de programació.
- Alguns exemples de les millors pràctiques de programació serien no utilitzar bucles redundants, reduir les visites a la base de dades, utilitzar la memòria cau, optimitzar l’ús de consultes SQL, etc. Es considera que una aplicació és escalable si minimitza l’ús de la memòria a la màxima extensió possible.
- Exemple: Si l'espai d'emmagatzematge disponible per a un nombre especificat d'usuaris es queda sense memòria, el desenvolupador es veurà obligat a afegir emmagatzematge de base de dades addicional per compensar la pèrdua de dades.
5) Ús de la xarxa:
- L’ús de la xarxa és la quantitat d’amplada de banda que consumeix una aplicació que s’està provant.
- L’objectiu de l’ús de la xarxa és reduir la congestió de la xarxa. L’ús de la xarxa es mesura en termes de bytes rebuts per segon, trams rebuts per segon, segments rebuts i enviats per segon, etc.
- Les tècniques de programació com l’ús de tècniques de compressió poden ajudar a reduir la congestió i minimitzar l’ús de la xarxa. Es considera que una aplicació és escalable si pot funcionar amb una congestió mínima de la xarxa i proporcionar un alt rendiment de l’aplicació.
- Exemple: En lloc de seguir un mecanisme de cua per processar les sol·licituds de l'usuari, un desenvolupador pot escriure el codi per processar les sol·licituds de l'usuari quan la sol·licitud arriba a una base de dades.
A part d’aquests paràmetres, hi ha alguns altres paràmetres menys utilitzats, com ara el temps de resposta a la sol·licitud del servidor, el temps d’execució de tasques, el temps de transacció, el temps de càrrega de la pàgina web, el temps per obtenir la resposta de la base de dades, el temps de reinici, el temps d’impressió, el temps de sessió, la transició de pantalla , transaccions per segon, visites per segon, sol·licituds per segon, etc.
Els atributs per a les proves d’escalabilitat poden diferir d’una aplicació a l’altra, ja que la mesura de rendiment de les aplicacions web pot no ser la mateixa que la d’un ordinador de sobretaula o d’una aplicació client-servidor.
Passos per provar l’escalabilitat d’una aplicació
El principal avantatge de realitzar aquestes proves en una aplicació és entendre el comportament de l'usuari quan s'arriba a la càrrega màxima i les formes de resoldre-la.
A més, aquesta prova permet als verificadors identificar la degradació del costat del servidor i el temps de resposta respecte a la càrrega de l'usuari de l'aplicació. Com a resultat, aquesta prova s'està preferint en diverses organitzacions de tot el món.
A continuació es mostra la llista de passos per provar l’escalabilitat d’una aplicació:
- Creeu escenaris de prova repetibles per a cadascun dels atributs de prova d'escalabilitat.
- Proveu l'aplicació de nivells de càrrega variables com ara càrregues baixes, mitjanes i altes i verifiqueu el comportament d'una aplicació.
- Creeu un entorn de prova prou estable com per suportar tot el cicle de proves d’escalabilitat.
- Configureu el maquinari necessari per realitzar aquesta prova.
- Definiu un conjunt d’usuaris virtuals per verificar el comportament d’una aplicació amb una càrrega d’usuari variable.
- Repetiu els escenaris de prova per a diversos usuaris en diferents condicions d’aplicacions internes, maquinari i canvis de base de dades.
- En cas d’un entorn en clúster, valideu si l’equilibrador de càrrega dirigeix les sol·licituds de l’usuari a diversos servidors per garantir que cap servidor no estigui sobrecarregat per una sèrie de sol·licituds.
- Executeu els escenaris de prova a l'entorn de prova.
- Analitzeu els informes generats i verifiqueu les àrees de millora, si n'hi ha.
Conclusió
En poques paraules,
=> Les proves d’escalabilitat són una metodologia de proves no funcionals per verificar si una aplicació pot augmentar o reduir els atributs. Els atributs utilitzats per a aquesta prova variaran d’una aplicació a l’altra.
=> L'objectiu principal d'aquestes proves és determinar quan una aplicació comença a degradar-se a una càrrega màxima i prendre els passos adequats per garantir que l'aplicació desenvolupada sigui prou escalable per adaptar-se als canvis en les aplicacions internes, el programari, el maquinari i també la base de dades. canvis en el futur.
=> Si aquesta prova es fa correctament, es poden descobrir errors importants pel que fa al rendiment del programari, el maquinari i la base de dades a les aplicacions desenvolupades.
l'etapa del cicle de desenvolupament de programari en què es realitza la programació és:
=> Un desavantatge important d’aquestes proves seria la limitació de l’emmagatzematge de dades, amb límits en la mida de la base de dades i l’espai de memòria intermèdia. A més, les limitacions d'ample de banda de la xarxa poden ser un impediment per a les proves d'escalabilitat.
=> El procés de prova d'escalabilitat difereix d'una organització a una altra, ja que els atributs de prova d'escalabilitat d'una aplicació seran diferents de les altres aplicacions.
Lectura recomanada
- Prova de càrrega amb tutorials HP LoadRunner
- Prova de rendiment vs Prova de càrrega vs Prova d’estrès (diferència)
- Diferència entre la prova d'escriptori, el servidor de clients i la prova web
- Proves de càrrega, esforç i rendiment d'aplicacions web mitjançant WAPT
- Les millors eines de prova de programari 2021 (Eines d'automatització de proves de control de qualitat)
- Guia de proves de seguretat d'aplicacions web
- Proves d'aplicacions: els conceptes bàsics de la prova de programari.
- Instal·lació de l'aplicació al dispositiu i inici de proves des d'Eclipse