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.
- 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ó.
- 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ó.
- 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
Pas 2: Configuració del Job de Jenkins
- Crear un nou Job: Anar a Jenkins i crear un nou Job de tipus "Freestyle project".
- Configurar el Repositori: Configurar el repositori de codi font (per exemple, Git).
- 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
Pas 2: Commit i Push del fitxer
- 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
Exercici Pràctic
Configuració de Proves Automatitzades amb Jenkins
- Instal·la Jenkins en el teu sistema.
- Crea un nou Job en Jenkins per al teu projecte.
- Configura el Job per executar proves unitàries utilitzant Maven.
- Executa el Job i verifica que les proves s'executen correctament.
Solució
- Instal·lació de Jenkins:
sudo apt update sudo apt install jenkins
- Crear un nou Job:
- Anar a Jenkins, crear un nou Job de tipus "Freestyle project".
- Configurar el Job:
- Configurar el repositori de codi font (per exemple, Git).
- Afegir un pas de construcció per executar les proves:
mvn test
- 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.
Curs de DevOps Bàsic
Mòdul 1: Introducció a DevOps
- Què és DevOps?
- Història i evolució de DevOps
- Principis i beneficis de DevOps
- Cultura i mentalitat DevOps
Mòdul 2: Fonaments d'Integració Contínua (CI)
- Conceptes bàsics de CI
- Eines populars de CI
- Configuració d'un pipeline de CI
- Proves automatitzades en CI
Mòdul 3: Fonaments de Lliurament Continu (CD)
- Conceptes bàsics de CD
- Diferències entre CI i CD
- Eines populars de CD
- Configuració d'un pipeline de CD
Mòdul 4: Automatització de Desplegaments
- Introducció a l'automatització de desplegaments
- Eines d'automatització de desplegaments
- Desplegament continu (CD) vs. Lliurament continu (CD)
- Pràctiques recomanades per a l'automatització de desplegaments
Mòdul 5: Col·laboració entre Desenvolupament i Operacions
- Comunicació i col·laboració en equips DevOps
- Eines de col·laboració i gestió de projectes
- Integració de feedback continu
- Casos d'estudi i exemples d'èxit
Mòdul 6: Exercicis Pràctics i Projectes
- Configuració d'un entorn de CI/CD
- Automatització d'un pipeline de desplegament
- Implementació de proves automatitzades
- Projecte final: Implementació completa de CI/CD