No podem definir les condicions de concurrència d’usuaris en unes proves de rendiment partint únicament del nombre d’usuaris potencials que poden accedir a l’aplicació.
Habitualment aquest és el nombre plantejat de forma equivocada per molts equips. A continuació es descriu la guia de com calcular-ho.
Cal definir el volum de transaccions desitjades, i vincular-ho al període horari de més peticions (pic horari). A partir d’aquesta informació es pot obtenir el nombre d’usuaris concurrents que necessitem simular, usant la següent fórmula:
És a dir, quantes vegades es farà la transacció durant el període establert de màxima càrrega (habitualment 1 o 2 hores), i quin temps es preveu que es tardarà en fer-se. Quan parlem de transacció ens referim a diferents passos amb pantalles.
Exemple
Partint de l’exemple utilitzat en la descripció dels temps de resposta, anirem pas a pas en el càlcul del nombre d’usuaris virtuals que s’han de simular per a cada navegació:
Definir el període d’interès amb major pic (PER)
Durada en hores i minuts en el que el sistema tindrà una major càrrega. Habitualment, en aplicacions de l’administració pública els pics es concentren a primera hora del dia, durant 1 hora o 1 hora i mitja.
En l’exemple existeix un període molt alt de càrrega durant 2 hores de preinscripció, per tant PER = 2h.
Calcular l’objectiu de transaccions (OTR)
Calcular el nombre de transaccions desitjades o esperades que s’han de poder executar en el període d’interès.
Calcular el temps de cada transacció (TTR)
El temps total d’una transacció de negoci es pot calcular partint de valors reals (amb una eina d’anàlisi) o bé estimant-los. En el cas d’exemple teníem que el temps de la transacció A era de 180 segons.
Podem usar en casos que no els coneguem o no es vulgui estimar, les dades obtingudes en l’execució d’una prova de rendiment amb 1 sol usuari i executar-la durant un temps mínim (1 hora recomanada).
Cada transacció es podrà executar durant el període d’interès(PER) un total de: PER / TTR.
Per exemple, la transacció A, podrà fer 40 iteracions de prova durant les 2 hores (3.600 segons / 180 segons TTRA).
Calcular el nombre d’usuaris virtuals o concurrents (VU)
Per últim, ja podem calcular el nombre d’usuaris virtuals necessaris a simular segons les variables anteriors: període de la prova, nombre de transaccions que volem aconseguir i del temps total d’una execució de la transacció.
I el nombre total d’usuaris virtuals a simular seria la suma dels calculats per cada transacció: 63 + 32 = 95
Podem simular les proves amb menys usuaris virtuals però amb les mateixes condicions?
Si no tenim especial interès en veure el comportament real, però en estressar el sistema i veure els temps de resposta de les interaccions podem reduir els think times a zero.
En el cas exemple tindríem:
TTR_A : 3 + 1 + 7 + 1 + 5 + 1 + 30 (on cada 1 és el temps del think-time entre pantalles) = 48 segons TTR_B : 3 + 1 + 7 + 1 + 10 + 1 + 20 = 53 segons
Amb aquesta compactació necessitem:
VU_A = (TTR_A * OTR_A) / PER = (48* 2500)/ (2*3600) = 17 usuaris virtuals
VU_B = (TTR_B * OTR_B) / PER = (53 * 1750)/ (2*3600) = 13 usuaris virtuals
Hem passat de necessitar 95 usuaris virtuals concurrents a necessitar únicament 30 usuaris.