Les proves de rendiment són un aspecte crucial del procés de proves de programari, especialment quan es tracta d'aplicacions que han de gestionar grans volums de dades o un alt nombre d'usuaris simultanis. Aquest tipus de proves s'enfoca en determinar la velocitat, escalabilitat i estabilitat d'un sistema sota una càrrega determinada.
Objectius de les Proves de Rendiment
- Mesurar la Velocitat: Determinar el temps de resposta del sistema sota diferents condicions de càrrega.
- Avaluar l'Escalabilitat: Com el sistema gestiona l'augment de càrrega i si pot escalar adequadament.
- Comprovar l'Estabilitat: Assegurar que el sistema es manté estable sota càrregues prolongades.
- Identificar Cols d'Ampolla: Detectar i solucionar els components que limiten el rendiment del sistema.
Tipus de Proves de Rendiment
-
Proves de Càrrega:
- Objectiu: Avaluar el rendiment del sistema sota una càrrega esperada.
- Exemple: Simular 1000 usuaris accedint al sistema simultàniament.
-
Proves d'Estrès:
- Objectiu: Determinar els límits del sistema portant-lo més enllà de la seva capacitat màxima.
- Exemple: Incrementar progressivament la càrrega fins que el sistema falli.
-
Proves de Resistència:
- Objectiu: Comprovar el rendiment del sistema sota càrrega durant un període prolongat.
- Exemple: Executar el sistema sota càrrega constant durant 24 hores.
-
Proves de Pic:
- Objectiu: Avaluar el rendiment del sistema durant pics de càrrega.
- Exemple: Simular un augment sobtat d'usuaris durant un esdeveniment especial.
-
Proves de Configuració:
- Objectiu: Avaluar el rendiment del sistema amb diferents configuracions de maquinari i programari.
- Exemple: Provar el sistema amb diferents versions de bases de dades.
Eines per a Proves de Rendiment
- Apache JMeter: Una eina de codi obert per a proves de càrrega i rendiment.
- LoadRunner: Una eina comercial que permet simular milers d'usuaris.
- Gatling: Una eina de codi obert per a proves de càrrega amb un enfocament en l'automatització.
- BlazeMeter: Una plataforma basada en el núvol per a proves de càrrega i rendiment.
Exemple Pràctic amb Apache JMeter
A continuació, es mostra un exemple bàsic de com configurar una prova de càrrega amb Apache JMeter:
<testPlan> <ThreadGroup> <numThreads>100</numThreads> <!-- Nombre d'usuaris virtuals --> <rampTime>60</rampTime> <!-- Temps per escalar fins al nombre total d'usuaris --> <loopCount>10</loopCount> <!-- Nombre de vegades que cada usuari executarà el test --> <httpSampler> <domain>www.exemple.com</domain> <path>/api/test</path> <method>GET</method> </httpSampler> </ThreadGroup> </testPlan>
Explicació del Codi
- numThreads: Defineix el nombre d'usuaris virtuals que simularan l'accés al sistema.
- rampTime: Temps en segons per escalar fins al nombre total d'usuaris.
- loopCount: Nombre de vegades que cada usuari executarà el test.
- httpSampler: Configura la petició HTTP que cada usuari enviarà al servidor.
Exercici Pràctic
Objectiu: Configurar una prova de càrrega utilitzant Apache JMeter per simular 500 usuaris accedint a una pàgina web durant 5 minuts.
- Instal·la Apache JMeter.
- Crea un nou pla de proves.
- Configura un grup de fils (Thread Group) amb 500 usuaris i un temps d'escalat de 300 segons.
- Afegeix un mostrejador HTTP (HTTP Sampler) per accedir a la pàgina web desitjada.
- Executa la prova i analitza els resultats.
Solució
<testPlan> <ThreadGroup> <numThreads>500</numThreads> <rampTime>300</rampTime> <loopCount>1</loopCount> <httpSampler> <domain>www.exemple.com</domain> <path>/home</path> <method>GET</method> </httpSampler> </ThreadGroup> </testPlan>
Conclusió
Les proves de rendiment són essencials per garantir que un sistema pugui gestionar la càrrega esperada i mantenir un rendiment òptim. Mitjançant l'ús d'eines com Apache JMeter, els provadors poden simular diferents escenaris de càrrega i identificar àrees de millora. Aquestes proves ajuden a assegurar que el sistema sigui robust, escalable i preparat per a l'ús real.
Proves Manuals i Tipus de Proves
Mòdul 1: Introducció a les Proves Manuals
- Què són les Proves Manuals?
- Importància de les Proves Manuals
- Proves Manuals vs. Proves Automatitzades
- Rols i Responsabilitats d'un Provador Manual
Mòdul 2: Conceptes Bàsics en Proves Manuals
- Cicle de Vida del Desenvolupament de Programari (SDLC)
- Cicle de Vida de les Proves de Programari (STLC)
- Pla de Proves i Cas de Prova
- Cicle de Vida del Defecte
Mòdul 3: Tipus de Proves Manuals
Mòdul 4: Tècniques Avançades de Proves Manuals
Mòdul 5: Tipus de Proves Especialitzades
- Proves de Seguretat
- Proves de Rendiment
- Proves de Localització i Internacionalització
- Proves d'Acceptació d'Usuari (UAT)