Les proves de rendiment són un aspecte crucial de l'assegurament de la qualitat del programari, ja que ajuden a garantir que una aplicació funcioni correctament sota càrregues esperades i inesperades. Aquest tipus de proves permet identificar colls d'ampolla, assegurar la capacitat de resposta i garantir que el sistema compleixi amb els requisits de rendiment.

Objectius de les Proves de Rendiment

  1. Mesurar la Velocitat: Determinar el temps de resposta de l'aplicació sota diferents càrregues.
  2. Identificar Colls d'Ampolla: Localitzar parts del sistema que limiten el rendiment.
  3. Avaluar l'Estabilitat: Comprovar si l'aplicació es manté estable sota càrregues pesades.
  4. Verificar l'Escalabilitat: Assegurar que el sistema pugui gestionar un augment en el nombre d'usuaris o transaccions.

Tipus de Proves de Rendiment

  1. Proves de Càrrega: Avaluen el rendiment del sistema sota càrregues esperades.
  2. Proves d'Estrès: Posen el sistema sota càrregues extremes per veure com es comporta en situacions límit.
  3. Proves de Resistència: Comproven el rendiment del sistema durant períodes prolongats.
  4. Proves de Pic: Avaluen el rendiment del sistema durant pics de càrrega sobtats.
  5. Proves de Volum: Analitzen el rendiment del sistema amb grans volums de dades.

Eines per a les Proves de Rendiment

Eina Descripció
JMeter Eina de codi obert per a proves de càrrega i rendiment.
LoadRunner Solució comercial per a proves de rendiment i càrrega.
Gatling Eina de codi obert per a proves de càrrega, coneguda per la seva eficiència.
Apache Bench Eina de línia de comandes per a proves de càrrega bàsica.

Exemple Pràctic: Prova de Càrrega amb JMeter

Configuració Bàsica

  1. Instal·lació de JMeter: Descarrega i instal·la JMeter des del lloc oficial d'Apache.
  2. Crear un Pla de Prova:
    • Afegeix un "Thread Group" per definir el nombre d'usuaris virtuals.
    • Afegeix un "HTTP Request" per simular les peticions al servidor.
    • Afegeix un "Listener" com "View Results Tree" per veure els resultats.

Exemple de Configuració

Thread Group:
  Number of Threads (users): 100
  Ramp-Up Period (seconds): 10
  Loop Count: 1

HTTP Request:
  Server Name or IP: www.example.com
  Path: /api/test

Listener:
  View Results Tree

Execució de la Prova

  • Executa el pla de prova i observa els resultats al "View Results Tree".
  • Analitza el temps de resposta i els errors per identificar possibles colls d'ampolla.

Exercici Pràctic

Objectiu: Realitzar una prova de càrrega bàsica utilitzant JMeter per avaluar el rendiment d'un servei web.

Passos

  1. Configura un "Thread Group" amb 50 usuaris virtuals i un "Ramp-Up Period" de 5 segons.
  2. Afegeix un "HTTP Request" per a una URL de prova.
  3. Afegeix un "Summary Report" per veure els resultats agregats.
  4. Executa la prova i analitza els resultats.

Solució

  1. Thread Group:

    • Number of Threads (users): 50
    • Ramp-Up Period (seconds): 5
    • Loop Count: 1
  2. HTTP Request:

    • Server Name or IP: www.example.com
    • Path: /api/test
  3. Listener:

    • Summary Report
  4. Anàlisi:

    • Revisa el temps de resposta mitjà i el nombre d'errors.
    • Identifica si el sistema pot gestionar la càrrega esperada.

Conclusió

Les proves de rendiment són essencials per garantir que el programari compleixi amb els requisits de rendiment i pugui gestionar càrregues reals. Mitjançant l'ús d'eines com JMeter, els desenvolupadors poden identificar i solucionar colls d'ampolla abans que el programari arribi als usuaris finals. En el següent tema, explorarem les proves de seguretat per assegurar que el programari no només sigui ràpid, sinó també segur.

Qualitat del Programari i Millors Pràctiques

Mòdul 1: Introducció a la Qualitat del Programari

Mòdul 2: Fonaments de les Proves de Programari

Mòdul 3: Qualitat del Codi i Millors Pràctiques

Mòdul 4: Proves Automatitzades

Mòdul 5: Tècniques Avançades de Proves

Mòdul 6: Processos d'Assegurament de la Qualitat

Mòdul 7: Millors Pràctiques en el Desenvolupament de Programari

Mòdul 8: Estudis de Cas i Aplicacions del Món Real

© Copyright 2024. Tots els drets reservats