Latest UI automation test frameworks Review

Use Case

  • UI Test Automation for Web project written in Angular.
  • Need multi-browser support including Chrome, Firefox & Safari
  • Efficient Testing and easy integration in CI
  • Better if Typescript support as it was primary programming language used for existing projects.

Reviewed Frameworks

Cypress

  • The architecture of running the same loop as the testing application. Due to this having better access to simply everything in the application.
  • Fast execution
  • Higher consistency with tests
  • Easy debugging
  • Not supporting Safari browser
  • Multiple tabs on the same browser not supported
  • The dashboard will be coming with a paid plan.
  • Larger projects may need commercial support

Puppeteer

  • Fast and reliable tests
  • Efficient tests with better access to modules
  • Higher user ratings on Git hub (70k stars)
  • No need of installing a separate server to run tests
  • Only supporting Chrome browser
  • Still evolving (But…. having a great community and many supporting documentations :D)

Testproject

  • Cloud-hosted E2E framework
  • Fast and responsive support team
  • Test recorder help to generate test scripts easily
  • Cloud management of tests
  • Unlimited cloud space for tests (As per their support team)
  • The testing team not having full access and management over test scripts due to this SaaS framework
  • More suitable for teams looking for standard use cases
  • Use Selenium for UI tests

Nightwatch

  • Evolving community
  • Higher git hub rating
  • Good documentation
  • Not properly supporting typescript
  • Having Selenium protocol limitations/issues
  • Depending on the browser, need to install a specific web driver

Webdriver I/O + Selenium

  • Enhancing support with other frameworks like “Puppeteer”
  • Proper end to end documentation
  • The WDIO Testrunner having synchronous behavior which makes test implementation easier.
  • Need to have Selenium if it needs multiple browsers support
  • Underlying Selenium protocols may cause stability issues in CI
  • Lower git hub starts (6k only)

Playwright

  • Fast and efficient tests
  • Implemented with promise methods that make synchronous testing. Easy to write tests
  • Developed top of famous and growing “Puppeteer” while overcoming its’ limitations
  • Not using underlying Selenium protocols (JSON wire protocol)
  • A growing community with higher git hub stars (20k just for two years)
  • Quite new and still evolving (Method chaining missing yet)
  • Can be challenging to adopt due to a lack of documentation
NPM Download trends & Stats

What should I choose?

  • Playwright: Automation Framework
  • Jest: Test Runner
  • Typescript: Programming Language

References

--

--

--

Techie | Traveler | Writer

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Some Tricky Things of javascript.

Parcel: Bundling Your Web App Made Easy

RxJS Primitives — Operators for mutating and filtering primitives

The Basics of React Unit Testing

South African ports chaos sees ships start to reroute

AMG Logistics

Distracting guards with a coin part 2

Binding Angular CSS Classes Dynamically with @HostBinding

Testing the Material-UI ‘Select’ component with Cypress and the React-Testing-Library.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Dilshani Subasinghe

Dilshani Subasinghe

Techie | Traveler | Writer

More from Medium

VerneMQ MQTT load testing — process & issues faced

Understanding how to use REST API and HTTP

Rest Assured -Avoid Tokens getting logged

Build Automation: The Key to Healthy and Functional Applications