En aquest tema, aprendrem com implementar proves automatitzades dins d'un pipeline de CI/CD. Les proves automatitzades són essencials per garantir la qualitat del codi i detectar errors de manera primerenca en el procés de desenvolupament.

Objectius d'Aprenentatge

  • Comprendre la importància de les proves automatitzades.
  • Conèixer els diferents tipus de proves automatitzades.
  • Aprendre a configurar proves automatitzades en un pipeline de CI/CD.
  • Implementar proves automatitzades utilitzant eines populars.

  1. Importància de les Proves Automatitzades

Les proves automatitzades ofereixen diversos beneficis:

  • Detecció primerenca d'errors: Permeten identificar problemes en el codi de manera ràpida.
  • Consistència: Les proves es realitzen de manera consistent cada vegada que es fa un canvi en el codi.
  • Eficiència: Redueixen el temps i l'esforç necessaris per realitzar proves manuals.
  • Confiança: Augmenten la confiança en la qualitat del codi i en la capacitat de desplegar-lo en producció.

  1. Tipus de Proves Automatitzades

Hi ha diversos tipus de proves automatitzades que es poden implementar en un pipeline de CI/CD:

2.1. Proves Unitàries

  • Descripció: Proves que verifiquen la funcionalitat de components individuals del codi (unitats).
  • Eines: JUnit (Java), NUnit (.NET), PyTest (Python).

2.2. Proves d'Integració

  • Descripció: Proves que verifiquen la interacció entre diferents components o mòduls del sistema.
  • Eines: TestNG (Java), Mocha (JavaScript), PHPUnit (PHP).

2.3. Proves de Sistema

  • Descripció: Proves que verifiquen el sistema complet en un entorn que simula la producció.
  • Eines: Selenium (per a proves de navegadors), Cucumber (per a proves de comportament).

2.4. Proves de Regressió

  • Descripció: Proves que asseguren que els canvis recents no han introduït nous errors en el codi existent.
  • Eines: Utilitzen les mateixes eines que les proves unitàries i d'integració.

  1. Configuració de Proves Automatitzades en un Pipeline de CI/CD

3.1. Integració de Proves en Jenkins

Jenkins és una eina popular per a CI/CD que permet integrar proves automatitzades de manera senzilla.

Pas 1: Instal·lació de Jenkins

# Per a sistemes basats en Debian/Ubuntu
sudo apt update
sudo apt install jenkins

Pas 2: Configuració del Job de Jenkins

  1. Crear un nou Job: Anar a Jenkins i crear un nou Job de tipus "Freestyle project".
  2. Configurar el Repositori: Configurar el repositori de codi font (per exemple, Git).
  3. Afegir un pas de construcció: Afegir un pas de construcció per executar les proves. Per exemple, per a proves unitàries amb Maven:
    mvn test
    

3.2. Integració de Proves en GitLab CI/CD

GitLab CI/CD és una altra eina popular que permet configurar pipelines de CI/CD amb proves automatitzades.

Pas 1: Crear un fitxer .gitlab-ci.yml

stages:
  - test

test:
  stage: test
  script:
    - mvn test

Pas 2: Commit i Push del fitxer

git add .gitlab-ci.yml
git commit -m "Add CI configuration"
git push origin main

  1. Implementació de Proves Automatitzades: Exemple Pràctic

4.1. Exemple amb JUnit i Maven

Pas 1: Configuració del Projecte Maven

<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.example</groupId>
  <artifactId>my-app</artifactId>
  <version>1.0-SNAPSHOT</version>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

Pas 2: Crear una Prova Unitària

import org.junit.Test;
import static org.junit.Assert.assertEquals;

public class CalculatorTest {
    @Test
    public void testAdd() {
        Calculator calculator = new Calculator();
        assertEquals(5, calculator.add(2, 3));
    }
}

Pas 3: Executar les Proves

mvn test

Exercici Pràctic

Configuració de Proves Automatitzades amb Jenkins

  1. Instal·la Jenkins en el teu sistema.
  2. Crea un nou Job en Jenkins per al teu projecte.
  3. Configura el Job per executar proves unitàries utilitzant Maven.
  4. Executa el Job i verifica que les proves s'executen correctament.

Solució

  1. Instal·lació de Jenkins:
    sudo apt update
    sudo apt install jenkins
    
  2. Crear un nou Job:
    • Anar a Jenkins, crear un nou Job de tipus "Freestyle project".
  3. Configurar el Job:
    • Configurar el repositori de codi font (per exemple, Git).
    • Afegir un pas de construcció per executar les proves:
      mvn test
      
  4. Executar el Job:
    • Anar al Job i fer clic a "Build Now".

Conclusió

En aquesta secció, hem après la importància de les proves automatitzades i com implementar-les en un pipeline de CI/CD utilitzant eines com Jenkins i GitLab CI/CD. Les proves automatitzades són una part crucial del procés DevOps, ja que asseguren la qualitat del codi i permeten detectar errors de manera primerenca.

© Copyright 2024. Tots els drets reservats