One important thing to also note is that Cypress is not based on Selenium and therefore, works perfectly in the browser DOM elements. It is also known to possess more speed*, durability, and reliability as compared to Selenium-based tools. It is easy to install by just running a simple NPM command which makes for an easy onboarding process.
Christian Marchildon, an Automation Engineer at Q4 Inc. stated in his chat with us that “In the world of software testing, most developers and quality assurance testers have become accustomed to ‘writing code’ in tools like Selenium or Cypress to run test scripts. As the software grows and/or changes, maintaining a large number of scripts, therefore, becomes quite challenging. This increases development time and thus countermands the principles of DevOps which is shortening the development life cycle with continuous delivery.”
Yuki Shinohara, CTO at Money Forward Kessai, Inc., shared his experience with us about ensuring quality across all team members. He stated “On the subject of productivity, it’s not easy to incorporate the front-end into an iterative development model. Some companies manage E2E tests with code using tools like Cypress, but the code can break and hinder the iterative process. That’s why we couldn’t work on E2E tests. The least we could do was to check if it worked after deploying.”
Developers have stated that the limitations of Cypress are causing frustration. We will discuss those limitations plus offer solutions to get around them.
What are the limitations of Cypress?
There are some fundamental limitations of Cypress that make it not suitable to run serious test automation. From the way the tests are loaded to the running of such tests, Cypress has been known to have some technical limitations. We’ll be discussing a few of these limitations which include:
The node modules folder is quite large too, which makes it a limitation to its speed when running automated tests.
2. No multi-tab support
Because Cypress runs inside the browser, you wouldn’t be able to support multiple tabs when running tests. There is a workaround, however, as a recent customer of Autify, Chastain Marchildon, Automation Engineer for Q4 Inc. stated, “Since we switched to Autify vs Cypress, there’s not been a lot of bottlenecks that we’ve found with Autify. Our Virtual Events platform requires multi-tab support to simulate user interaction. Cypress provides a solution to that, but we didn’t have time to figure it out. In Autify, being able to open a new tab was easier. It speeds things up an extreme amount. I can’t imagine using anything else for Q4 Inc.”
3. *Cypress is slower
Cypress tests execution speed is okay at the initial stage of initiation which may be suitable for a demo, but this would get slower as the app scales. Cypress is based solely on Chrome DevTools Protocol (CDP) which is a protocol developed to enable a debugger inside Chromium-based browsers.
For a partly small test suite, it’s been found that Cypress is about the same speed, or slightly slower than Selenium WebDriver. This is also noticeable on a medium or large test suite. It is inefficient and very difficult to maintain test automation with Cypress.