Les proves de cap a cap (end-to-end, E2E) són un tipus de prova que verifica el funcionament complet d'una aplicació des del principi fins al final. Amb Playwright, podem automatitzar aquestes proves per assegurar-nos que totes les parts del sistema funcionen correctament quan es combinen.

Objectius d'Aprenentatge

En aquesta secció, aprendràs a:

  • Comprendre el concepte de proves de cap a cap.
  • Configurar i executar proves E2E amb Playwright.
  • Escriure scripts de prova que simulin el comportament de l'usuari.
  • Analitzar els resultats de les proves per identificar problemes.

Què són les Proves de Cap a Cap?

Les proves de cap a cap tenen com a objectiu:

  • Verificar el flux complet de l'aplicació: Des de la interfície d'usuari fins a la base de dades i altres serveis.
  • Simular el comportament real de l'usuari: Inclou accions com fer clic, escriure, navegar entre pàgines, etc.
  • Assegurar la integració correcta de tots els components: Comprovar que les diferents parts del sistema funcionen conjuntament sense problemes.

Configuració de Proves E2E amb Playwright

Instal·lació de Playwright

Abans de començar, assegura't que Playwright està instal·lat al teu projecte. Si no ho està, pots instal·lar-lo amb el següent comandament:

npm install playwright

Estructura Bàsica d'un Script de Prova E2E

Un script de prova E2E amb Playwright pot semblar-se al següent:

import { chromium, Browser, Page } from 'playwright';

(async () => {
  const browser: Browser = await chromium.launch();
  const page: Page = await browser.newPage();

  // Navega a la pàgina inicial
  await page.goto('https://exemple.com');

  // Simula accions de l'usuari
  await page.click('text=Iniciar Sessió');
  await page.fill('input[name="usuari"]', 'exemple');
  await page.fill('input[name="contrasenya"]', 'contrasenya123');
  await page.click('text=Enviar');

  // Verifica que l'usuari ha iniciat sessió correctament
  const text = await page.textContent('h1');
  console.assert(text === 'Benvingut, exemple!', 'L'inici de sessió ha fallat');

  await browser.close();
})();

Explicació del Codi

  • Importació de Mòduls: Importem chromium, Browser, i Page de Playwright per crear i controlar el navegador.
  • Llançament del Navegador: Utilitzem chromium.launch() per iniciar una instància del navegador.
  • Navegació i Accions: Utilitzem page.goto() per navegar a la pàgina desitjada i page.click(), page.fill() per simular accions de l'usuari.
  • Verificació: Utilitzem page.textContent() per obtenir el text d'un element i console.assert() per verificar que el resultat és l'esperat.
  • Tancament del Navegador: Finalment, tanquem el navegador amb browser.close().

Exercici Pràctic

Objectiu

Escriu un script de prova E2E que:

  1. Navegui a una pàgina de registre.
  2. Ompli el formulari de registre amb dades fictícies.
  3. Submeti el formulari.
  4. Verifiqui que l'usuari ha estat registrat correctament.

Solució

import { chromium, Browser, Page } from 'playwright';

(async () => {
  const browser: Browser = await chromium.launch();
  const page: Page = await browser.newPage();

  // Navega a la pàgina de registre
  await page.goto('https://exemple.com/registre');

  // Omple el formulari de registre
  await page.fill('input[name="nom"]', 'Usuari Exemple');
  await page.fill('input[name="email"]', '[email protected]');
  await page.fill('input[name="contrasenya"]', 'contrasenya123');
  await page.click('text=Registrar-se');

  // Verifica que el registre ha estat correcte
  const text = await page.textContent('.missatge-exit');
  console.assert(text === 'Registre complet!', 'El registre ha fallat');

  await browser.close();
})();

Errors Comuns i Consells

  • Selector Incorrecte: Assegura't que els selectors utilitzats (input[name="nom"], etc.) són correctes i existeixen a la pàgina.
  • Sincronització: Si les proves fallen per problemes de sincronització, considera utilitzar page.waitForSelector() per esperar que els elements estiguin disponibles abans d'interactuar amb ells.
  • Depuració: Utilitza page.screenshot() per capturar l'estat de la pàgina en punts crítics de la prova per ajudar a la depuració.

Conclusió

Les proves de cap a cap amb Playwright són una eina poderosa per assegurar que la teva aplicació funciona correctament des de la perspectiva de l'usuari. Amb la capacitat de simular interaccions reals, pots detectar i corregir problemes abans que arribin als usuaris finals. En el següent tema, explorarem les proves visuals amb Playwright per assegurar que la interfície d'usuari es mostra correctament en diferents escenaris.

Dramaturg amb TypeScript: De Principiant a Avançat

Mòdul 1: Introducció a Playwright i TypeScript

Mòdul 2: Començant amb Playwright

Mòdul 3: Fonaments de Playwright i TypeScript

Mòdul 4: Funcions Avançades de Playwright

Mòdul 5: Estratègies d'Automatització de Proves

Mòdul 6: Tècniques Avançades de TypeScript

Mòdul 7: Aplicacions Reals de Playwright

Mòdul 8: Conclusió del Curs i Propers Passos

© Copyright 2024. Tots els drets reservats