Published on

Playwright: testing moderno end-to-end e API per applicazioni web

Authors
  • avatar
    Name
    Alessandro Iannacone
    Twitter

Introduzione

Nel panorama moderno dello sviluppo web, il testing automatico non è più un'opzione ma una necessità. Applicazioni sempre più complesse, rilasci frequenti e architetture distribuite richiedono strumenti affidabili, veloci e facilmente integrabili nelle pipeline CI/CD.

In questo contesto, Playwright si è affermato come uno degli strumenti più potenti e completi per il testing end-to-end (E2E) e per l'API testing, offrendo un approccio unificato che copre frontend, backend e integrazione continua.

Questo articolo esplora le potenzialità di Playwright, i suoi principali casi d'uso e include un tutorial pratico basato su test API reali.


Cos'è Playwright

Playwright è un framework di testing open-source sviluppato da Microsoft, progettato per automatizzare il testing di applicazioni web moderne. Supporta nativamente i principali browser:

  • Chromium (Chrome, Edge)
  • Firefox
  • WebKit (Safari)

Il suo punto di forza è la capacità di offrire un'esperienza di testing cross-browser coerente, con un'unica API, senza necessità di configurazioni complesse.


Perché scegliere Playwright

1. Cross-browser reale

A differenza di altri strumenti, Playwright utilizza i motori reali dei browser. Questo consente di intercettare bug specifici di un browser prima che arrivino in produzione.

2. Velocità ed affidabilità

  • Esecuzione parallela dei test
  • Auto-waiting intelligente
  • Isolamento dei contesti di test

Il risultato è una suite di test più stabile e meno soggetta a flaky test.

3. Testing end-to-end completo

Playwright permette di:

  • Simulare interazioni utente (click, input, navigazione)
  • Gestire autenticazioni
  • Intercettare e mockare richieste di rete
  • Testare SPA e applicazioni SSR

4. API Testing integrato

Uno degli aspetti spesso sottovalutati è la possibilità di utilizzare Playwright anche per testare API REST, senza dover introdurre strumenti aggiuntivi come Postman o Newman.

Questo lo rende ideale per test di integrazione e smoke test backend.


Installazione rapida

In un progetto Node.js:

npm init playwright@latest

Questo comando configura:

  • Playwright
  • TypeScript
  • Struttura dei test
  • Configurazione base

Tutorial pratico: API Testing con Playwright

Di seguito un esempio reale di API testing utilizzando Playwright. In questo scenario vengono testate alcune API pubbliche di esempio (JSONPlaceholder), simulando una tipica Todo list.

Struttura del file

tests/
 └── api.spec.ts

Codice di esempio

// tests/api.spec.ts
import { test, expect } from '@playwright/test'

test.describe('Todo lista di test', () => {
  // Get array test
  test('Dovrei ricevere la lista di todos', async ({ request }) => {
    // manca il base url, lo imposto io
    const response = await request.get('https://jsonplaceholder.typicode.com/todos')

    // Assert che la richiesta sia andata a buon fine
    expect(response.ok()).toBeTruthy()

    // Assert che il body sia un array
    const responseBody = await response.json()
    expect(Array.isArray(responseBody)).toBeTruthy()
  })

  // Test per creare nuovi todo
  test('Con questo test dovrei aggiungere altri todo', async ({ request }) => {
    const newTodo = {
      title: 'iannacone',
    }

    const response = await request.post('https://jsonplaceholder.typicode.com/todos', {
      data: newTodo,
    })

    // Assert status code (201 Created)
    expect(response.status()).toBe(201)
    expect(response.ok()).toBeTruthy()

    // Assert contenuto risposta
    const responseBody = await response.json()
    expect(responseBody.title).toBe(newTodo.title)
    expect(responseBody.id).toBeDefined()
  })
})

Perché questo approccio è efficace

  • Nessuna dipendenza esterna per l'API testing
  • Stessa sintassi dei test E2E
  • Facile integrazione in pipeline CI
  • Test leggibili e manutenibili

Integrazione CI/CD

Playwright è pensato per funzionare perfettamente in ambienti automatizzati:

  • GitHub Actions
  • GitLab CI
  • Jenkins
  • Azure DevOps

Supporta:

  • Report HTML
  • Screenshot e video automatici
  • Tracing avanzato per il debugging

Quando usare Playwright

Playwright è particolarmente indicato se:

  • Vuoi unificare E2E e API testing
  • Hai bisogno di test cross-browser affidabili
  • Lavori in team DevOps o CI/CD oriented
  • Sviluppi SPA complesse o microservizi

Conclusioni

Playwright rappresenta oggi una delle soluzioni più complete per il testing moderno. La possibilità di testare frontend, backend e integrazione con un unico strumento riduce la complessità dello stack e migliora la qualità complessiva del software.

Per sviluppatori, QA e DevOps, adottare Playwright significa investire in test più affidabili, più veloci e più semplici da mantenere.

Nel prossimo articolo potremo approfondire:

  • Autenticazione e sessioni
  • Mock delle API
  • Visual regression testing
  • Best practice per pipeline CI/CD