Table of contents
Starting a few weeks ago, according to npmtrends.com, Playwright surpassed Cypress in npm downloads, indicating that more projects are starting with Playwright as their preferred automation framework.
We saw this coming
Most folks we work with in the industry saw this outcome as inevitable. Playwright is very lightweight in CI, supports built in parallelization & other developer favorites like async/await, multiple tabs, multiple domains, all of its test runner features are free, and so on. A lot of us saw this coming.
Playwright was already far ahead in terms of GitHub stars for sometime. Github starts are usually a good indicator of where developers’ hearts are and where their project requirements & internal recommendations follow.
I think what we found surprising though was the speed at which this occurred.
How Cypress loses to Playwright
Cypress is a great testing solution and revolutionized testing as we know it. Long live Cypress!
With Cypress, E2E went from the painful world of hard-coded waits and heavy-handed POM approaches to built in actionability and visibility checks with a focus on community building and developer experience. What we’ve seen over the course of the last five years or so is a cultural shift in the testing world from a heavy reliance on Manual QA and non-developer owned testing responsibilities to testing as a more fully incorporated practice. We’ve shifted left.
We’ve also seen testing become the battleground of where your developer velocity goes to die.
Titles have changed, entire departments have been lost to restructures, responsibilities have adjusted and solutions that were groundbreaking less than a decade ago are now no longer cutting edge.
The main areas where Cypress loses now used to be where they won; community trust, focus on developer productivity and rapid feature development. It’s not that those things don’t matter to Cypress any longer, but their attention has clearly shifted to solving enterprise problems. We can talk about blocking npm packages, or paywalling features that create parity with Playwright, but that would be a distraction. What really matters is velocity and practicality. A solution without parity to its top competitor, that requires the largest machines in CI and is still slower to run; is neither efficient nor practical unless you’re already using it.
Where Playwright wins
Cypress is a testing tool, Playwright is an automation solution.
This distinction is important when you compare these solutions to the present day realities of automation.
Playwright is a tool focused on developer productivity with more robust built-in features, the ability to use async/await, built in parallelization, a much lighter weight in CI. Playwright is also less opinionated because it doesn’t have to be, you can use it however you want. Scraping content for a LLM model? Check! Have a nested app in an iframe you want to test? Go wild! Three different browser sessions in the same chat instance? Sounds cool! Re-use your tests to monitor production? Absolutely.
Playwright supports the next step in the evolution of automation, and Cypress doesn’t.
So what? What happens now?
The industry continues to evolve. As test automation gets further out of the hands of traditional test departments in an organization and into the hands of software developers with specialty use cases like ops, tooling, and beyond, we will see an even higher adoption of Playwright over Cypress in the next few years.
It may be useful to start thinking about how you might leverage Playwright at scale.
Conclusions: Join Us for Playwright at Scale
I wanted to dive deeper into how those adopting Playwright can follow best practices for their team. Filip Hric and I took the time to discuss these topics in a webinar. We covered what we've seen in the wild and key considerations.
- Fundamentals & principles: You'll understand what Playwright is and its design principles.
- Efficient adoption & migration: You’ll learn how your team can adopt Playwright and move from other testing and automation tools.
- Best Practices: Learn the design patterns you should consider when creating Playwright coverage, including isolation and parallelism, testing methodologies, and advanced use cases
Watch the recorded webinar:
If you’d like to join a community of Playwright users discussing the best ways to use the framework, we’d love to have you in our Checkly Community Slack, with its very active #playwright-community channel!