Cypress 3.0: end-to-end testing in-browser per app moderne

Cypress 3.0 (maggio 2018) di Brian Mann: E2E testing framework JavaScript che gira nello stesso ciclo di event del browser. Time travel debugging, auto-waiting, screenshots, registrazione video. Alternativa moderna a Selenium.

Open SourceWeb CypressTestingE2EBrian MannJavaScriptOpen SourceWeb

Selenium non basta più

Selenium (2004+) è lo standard E2E testing: guida browser via WebDriver, ma è lento, flaky, debug difficile, API verbosa. Per app React/Vue/Angular con stato complesso e caricamento async i test Selenium sono fragili.

Il rilascio

Cypress 3.0 è rilasciato da Cypress.io il 29 maggio 2018. Founder e lead: Brian Mann, Gleb Bahmutov. Licenza MIT per la versione Open Source. Tool di recording (Cypress Dashboard) commerciale.

Architettura differente

A differenza di Selenium, Cypress non usa WebDriver. I test girano nello stesso contesto JavaScript dell’applicazione testata:

  • Niente latenza RPC
  • Accesso diretto al DOM, store, network
  • Auto-waiting built-in (niente più sleep())
  • Time travel debugging — snapshot ad ogni comando
describe('Login', () => {
  it('logs in valid user', () => {
    cy.visit('/login');
    cy.get('[name=email]').type('ada@example.com');
    cy.get('[name=password]').type('secret');
    cy.contains('button', 'Login').click();
    cy.url().should('include', '/dashboard');
  });
});

Caratteristiche

  • Auto-waitingcy.get() aspetta elemento automaticamente
  • Time travel — hover su step per vedere stato DOM
  • Real-time reload — salva test → rigira
  • Screenshots & video — su fallimento o sempre
  • Network stubbingcy.intercept() per mock API
  • Cross-browser — Chrome/Edge/Electron (Firefox in arrivo dalla 4.x)

Novità della 3.0

La 3.0 (maggio 2018) introduce un plugin system ridisegnato e una nuova architettura del Test Runner, ponendo le basi per le release successive.

Limitazioni

  • No multi-tab — i test girano in un singolo tab
  • Cross-origin — limitazioni a navigare domini diversi
  • Iframe — supporto limitato
  • Performance — più veloce di Selenium ma più lento di API test

Concorrenti

  • Selenium (2004) — legacy, dominante ma con flakiness nota
  • TestCafe — simile, free tier
  • Nightwatch.js — su WebDriver
  • Protractor — specifico per Angular

Nel contesto italiano

Cypress sta entrando rapidamente nei team frontend italiani:

  • E-commerce headless per validazione checkout
  • Fintech per flussi critici (login, transazioni, KYC)
  • SaaS B2B
  • PA digitale — SPID/CIE login flow
  • Bootcamp e corsi frontend moderni

Riferimenti: Cypress 3.0 (29 maggio 2018). Brian Mann, Gleb Bahmutov, Cypress.io. Licenza MIT (core). Architettura in-browser.

Vuoi supporto? Sei sotto attacco? Stato dei servizi
Vuoi supporto? Sei sotto attacco? Stato dei servizi