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-waiting —
cy.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 stubbing —
cy.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.
