In this article, NGA will walk you through major frameworks commonly used for test automation.
You should learn as much frameworks as possible mentioned in the article.
UI Automation Frameworks:
WebdriverJS - Nodejs webdriver language bindings official implementation from authors of selenium, includes only basic features and commands. Uses Control Flow to syncrhonize async actions.
WebdriverIO - Nodejs webdriver language bindings unofficial implementation. Has own handling of async actions using Fibers and rich set of features
Protractor - End-to-end test framework for Angular applications, comes with JasmineWD included, and built on top of WebdriverJS
CodeceptJS - Supercharged end 2 end testing for NodeJS
Nightwatch.js - Easy to use Node.js based End-to-End (E2E) testing solution for browser based apps and websites.
Nemo - Nemo provides a simple way to add selenium automation to your NodeJS web projects. With a powerful configuration ability provided by krakenjs/confit, and plugin architecture, Nemo is flexible enough to handle any browser/device automation need.
Frisby - Is a REST API testing framework built on node.js and Jasmine that makes testing API endpoints easy, fast, and fun.
TestCafe - Automated browser testing for the modern web development stack.
Puppeteer - Puppeteer is a Node library which provides a high-level API to control headless Chrome over the DevTools Protocol. It can also be configured to use full (non-headless) Chrome. Built with <3 by the Chrome team.
Playwright - Playwright is a Node library to automate the Chromium, WebKit and Firefox browsers with a single API. It enables cross-browser web automation that is ever-green, capable, reliable and fast.
CasperJS - CasperJS is a navigation scripting & testing utility for PhantomJS and SlimerJS (still experimental). It eases the process of defining a full navigation scenario and provides useful high-level functions, methods & syntactic sugar for doing common tasks
Cypress.io - Fast, easy and reliable testing for anything that runs in a browser. Runs on Mac, Linux, Windows and any CI.
Serenity/JS - Serenity/JS makes acceptance and regression testing of modern web apps faster, more collaborative and easier to scale.
Sakuli - An awesome Node.js based End-to-End (E2E) testing solution which combines Selenium based web testing with full desktop automation. It's custom DSL allows to write complex scenarios which seamlessly switch between the browser and your desktop. It's built-in monitoring support allows to measure performance data from a user perspective.
BackstopJS - BackstopJS automates visual regression testing of your responsive web UI by comparing DOM screenshots over time.
Taiko - A Node.js library to test and automate chromium browsers.
QA Wolf - A Node.js library to create browser tests 10x faster with Puppeteer and Jest.
Mock Automation Frameworks:
API Automation Frameworks:
SuperTest - Super-agent driven library for testing node.js HTTP servers using a fluent API.
Frisby - Frisby is a REST API testing framework built on Jest that makes testing API endpoints easy, fast, and fun.
PactumJS - REST API Testing Tool for all levels in a Test Pyramid.
Mobile Automation Frameworks:
WebdriverIO's Appium implementation - nodejs bindings implemeting Appium commands.
Detox - Gray Box End-to-End Testing and Automation Framework for Mobile Apps
Code Analysis Frameworks:
JSHint- Community driving js code analysis tool supported by twitter, facebook, wiki, jquery, mozilla, yahoo and others.