Frontend Automation: Selenium vs Cypress


SeleniumCypress
Training Sessions with examplesVideo Tutorial: QA Framework: Technical documentation (Cucumber-Selenium & Cucumber-Cypress Set up)Video Tutorial: Cypress Demo
Key Points
  • Existing Selenium tests
  • Open Source. Free.
  • Automatic and scalable E2E testing. 
  • Replay and screenshots while running your tests can make it really easy to see why tests failed
  • Somewhat less mature than Selenium
  • Currently minorly used in both the OCLOMRS and MFE projects
New User Experience
  • Skills/knowledge needed: _____
  • Skills/knowledge needed: _____
  • Especially easy for people already comfortable with Javascript
  • Easy to use library
  • Very readable:

    cy.get('@firstname')
    cy.type('John');
Ease of Maintenance

Tech Stack Considerations
  • Tests run inside a browser
  • Access to Network Layer
  • Optimized for Javascript-heavy frontends
  • don’t really see any issue using Cypress to test the RefApp. We may not be able to take advantage of some of the techniques that Cypress allows for Javascript-heavy applications like SPAs and what not, but we can certainly set Cypress up to “find and click this button; ensure the page now looks correct”
  • Takes advantage of newer APIs, e.g. some Chrome APIs that provide an efficient interface to “drive” a browser from
  • Browsers: Supported in multiple browsers like Chrome, Chromium, Edge, Firefox (but not Safari or IE)
Support Available

Questions to Answer
  • Are there restrictions on functionality that could be tested (e.g. Do we need to use Selenium if we need to switch broswer tabs / interact with embedded webpages?)
Quotes/ References from other teams
  • "Dev teams have told me Cypress is easier to implement tests for than Selenium" - Kaseya
  • “We changed from Selenium to Cypress. Our QA team found it easier to use. Very easy to use library, open source and free, automatic and scalable E2E testing.” - Thinkific
  • “We’re keen on Cypress. This works for us as we don’t have dedicated QA roles or a QA team. It’s up to the developers to build E2E tests. Combine that with our front-end being written in javascript, it’s a good fit. Much easier to setup and ramp up on if your team is javascript savvy and tightly tied into the development flow.” - Mobify
  • “Our engineering team uses Cypress. Also, engineers call out what types of testing they want to do while grooming and estimating the story to ensure they’re all on the same page.” - Dyspatch