DEV Community

Nayden Gochev
Nayden Gochev

Posted on • Updated on

What to choose for e2e on SPA app ?

WHAT AND WHY will you choose TODAY for testing an E2E SPA app
(it is Micro frontend mostly React but there is some Angular 7 as well and who knows Vue may appear even )

Options:

  • Selenium
  • Puppeteer
  • Cypress
  • TestCafe
  • CodeceptJS
  • Telerik Test Studio
  • Something else ?

My observations so far:

  • Selenium - the only reason will be cross browser testing.
  • Puppeteer, Cypress are Chromium Only rely on Chrome DevTools, maybe Cypress is the most common out of the 3 ?
  • Codecept is something in between it can work on top of WebDriver (SeleniuM) or Puppeteer (Chrome only) not sure how different is the API in both cases but it looks like a nice abstraction to have.
  • TestCafe and Telerik Test Studio - I have 0 insight.

Latest comments (5)

Collapse
 
apihlaja profile image
Antti Pihlaja

CodeceptJs can use other drivers too, it's not Chrome only.

Collapse
 
gochev profile image
Nayden Gochev • Edited

hmm oh yes it states "easy switch between WebDriver or Puppeteer." so .. I guess WebDriver (Selenium) is for other browsers.. but this doesn't seems to be like same tests will work equally good :) but yes it's an option, maybe if you already have experience with the API but there is another project that requires firefox support it will be easier for QAs to switch instead of write all using the Selenium API

Thanks !

Collapse
 
apihlaja profile image
Antti Pihlaja

Well, it's quite misleading to say CodeceptJs is Chrome only. It's default configuration with WebDriver supports Firefox and Chrome. And you can configure any other Webdriver backend too.

Thread Thread
 
gochev profile image
Nayden Gochev

yes yes that's true I was thinking that by default it uses Puppeteer (which is chrome only) my mistake will edit it :)

Collapse
 
tomsfernandez profile image
Tomas Fernandez

I have only tried Selenium and Cypress. For me cypress is the best "developer friendly" tool. Also the community has an acceptable size. Can't find really complex examples though.

Can't compare performance as I have never measured it