Browser Automation
Cypress: uses, strengths, and limitations
Web testing with an interactive development runner.
- Pricing model
- Freemium
- Open source
- Yes
- Last verified
In simple terms
What is Cypress?
Cypress is a JavaScript and TypeScript testing tool that runs web tests through an interactive browser-oriented workflow. It supports end-to-end and component testing.
Practical guide
Cypress explained simply
In plain words
Cypress is a browser testing tool built around one very good idea: you should be able to watch your test run, step by step, and click back through what happened. It opens a real browser window with your test on one side and the application on the other.
For developers writing their first tests, that feedback loop is genuinely delightful, and it remains the strongest reason teams choose it.
What using it looks like
describe('login', () => { it('signs a registered user in', () => { cy.visit('/login'); cy.get('[data-cy=email]').type('reader@example.test'); cy.get('[data-cy=password]').type('test-password'); cy.contains('button', 'Sign in').click(); cy.contains('h1', 'Dashboard').should('be.visible'); });});Commands automatically retry for a short while, so a page that takes a moment to appear does not immediately fail the test. The interactive runner then lets you hover over each command and see exactly what the page looked like at that moment — a time machine for your test.
It also does component testing well, mounting a single piece of your interface in a real browser. If your team already lives in a JavaScript front-end stack, that fits naturally into how you work.
What to watch out for
- Tests are written in JavaScript or TypeScript only. If your team writes Java or Python, this is a hard stop.
- The documented model is one browser tab. Workflows that open popups or a second tab need workarounds rather than a natural approach.
- WebKit support is experimental — do not treat it as Safari coverage you can sign a release on.
- The runner is open source; the dashboard and parallelisation features are a paid service. Price that in before you depend on them.
Common questions
Is Cypress free?
The test runner is free and open source. Cypress Cloud — recording runs, parallelisation, analytics — is a paid subscription with a limited free tier.
Can it test a website it did not build?
Yes, it can test any site you are authorised to test. Cross-origin navigation has documented restrictions, so check those if your login goes through a third-party provider.
Is it good for beginners?
It is one of the friendliest starting points, mostly because seeing the test run makes the whole idea click faster.
Core capabilities
What it helps teams do
Interactive runner
Inspect commands, application state, and failures while developing tests.
Retry behavior
Queries and assertions retry according to Cypress command-chain rules.
Network control
Observe, stub, and modify supported browser network requests.
Component testing
Mount supported framework components in a real browser workbench.
Good fit
Consider Cypress when
- JavaScript or TypeScript web teams
- Interactive test development and command inspection
- Component testing for supported front-end frameworks
Consider alternatives
Another approach may fit when
- Tests require another programming language
- Multi-tab workflows are central to the product
- Stable WebKit coverage is a release requirement
Trade-offs
Limitations to understand
- Test authoring centers on JavaScript and TypeScript.
- The documented single-tab model affects some popup and multi-window workflows.
- WebKit support is experimental and should not be treated as stable Safari coverage.
Evaluation checklist
Questions to answer before adoption
- 01Will the team use end-to-end testing, component testing, or both?
- 02Do target workflows open multiple browser tabs?
- 03Which local and CI browsers are mandatory?
- 04Which Cypress Cloud features, if any, are required beyond the open-source runner?
Related learning
All levels
Playwright vs Cypress vs Selenium: A Neutral Comparison
Open articleAll levels
