Les proves de rendiment són proves no funcionals que tenen com objectiu validar l’eficiència de l’aplicació en temps de resposta i throughput. Tenen una complexitat superior a la d’altres tipus de proves i cal que es planifiquin, dissenyin i executin tenint en compte diferents patrons i pràctiques, per tal que el seu ús sigui eficient i no es malbaratin esforços i costos.
En base als objectius podrem establir si volem fer una prova de càrrega, una d’estrès, …
Tipus de proves de rendiment | Objectiu | Resultats | Punts a considerar |
---|---|---|---|
Proves de càrrega (la més habitual) | Verificar el comportament en les condicions esperades: condicions normals i condicions de pics (per exemple en períodes de la matriculació). Es realitza comprovant el resultats amb una càrrega creixent d’usuaris. | S’obtenen els temps de resposta per les transaccions. Es pot monitoritzar el comportament de la infraestructura. | Per establir si els temps són acceptables és bo haver definit prèviament els ANS |
Proves d’estrès | Verificar el comportament de l’aplicació per sobre de les condicions normals o condicions de pics, o amb una disponibilitat reduïda de recursos, per detectar defectes que només tenen lloc en aquestes condicions | Dóna informació de a partir quan l’aplicació començarà a fallar i donar errors, a més de la pròpia lentitud | La càrrega realitzada pot provocar disrupcions en altres aplicacions, si l’entorn no està totalment aïllat (xarxa, …) |
Proves d’estabilitat o resistència | Determinar si l’aplicació pot aguantar una càrrega esperada continuada | Determinar si hi ha alguna fuga de memòria de l’aplicació | En alguns casos pot ser necessari executar-les en entorns productius. En aquest cas s’ha d’avaluar prèviament l’impacte i acordar finestres d’execució. |
Identificar en quin entorn es realitzaran les proves, així com les eines que requerirem (injectors, …). El factor clau és entendre les similituds i diferències entre l’entorn de proves (preproducció, p.ex.) i l’entorn de producció:
Identificar els criteris d’acceptació per:
Per objectivar quin serà el rendiment en producció, és important que es dissenyin escenaris o simulacions reals, considerant:
S’ha de definir el model de càrrega, seguint la guia Definició del Model de Càrrega
Instal·lar els injectors de càrrega si és necessari.
Aquest pas inclou la creació dels scripts i escenaris usant l’eina corporativa](/eines/alm-loadrunner)
Assegurar que:
Abans d’executar les proves reals, executar una prova de fum per verificar que el script i l’eina corporativa funcionen correctament (injectors, …).
Assegurar-se que es recullen els indicadors de rendiment.
Caldrà executar totes les proves almenys 3 vegades. Això és important perquè els resultats de les primeres proves poden ser afectats per l’ús de cachés del servidor, càrrega de llibreries, …. Si el resultat de la segona iteració i de la tercera no són similars tornar a executar les proves.
Mentre es realiza la prova de càrrega, accedir a l’aplicació de forma manual per comparar posteriorment amb els resultats de les proves.
Recordar simular la rampa de pujada i de baixa d’acord amb el model definit.
En la configuració de l’execució considerar:
Abans d’informar dels resultats finals, cal analitzar les dades obtingudes amb l’eina
L’execució de la mateixa prova (repetició) sempre donarà temps de resposta diferents, ja que les condicions en les que s’executen no són exactament al 100% les mateixes (càrrega a la xarxa, servidors, temporitzadors, fils d’execució que entren en diferents moments del temps, etc.). Això vol dir que si executem la mateixa prova dos vegades obtindrem, per exemple, temps de resposta diferents.
Avaluar les dades recollides i comparar-les amb els criteris d’acceptació establerts.
Si en base a l’avaluació del cicle es troben colls d’ampolla o problemes, afegir noves mètriques a capturar i realitzar un nou cicle de proves.