Javascript based test automation frameworks in a lot of demand from Employers all across the globe. A major reason for the popularity of Javascript based frameworks is that most web applications front end or User interface have Javascript components and it's going to automate such web applications more easily with Java script than any other programming language.
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.
Dalek.js - Automated cross browser testing with JavaScript.
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:
Sinon.JS - Standalone test spies, stubs and mocks for JavaScript. No dependencies, works with any unit testing framework.
API Automation Frameworks:
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:
BDD Frameworks:
CucumberJS - Cucumber is a tool for running automated tests written in plain language.Cucumber.js is the JavaScript implementation of Cucumber and runs on both Node.js and modern web browsers.
MochaJS - feature-rich JavaScript test framework running on node.js and the browser.
Jasmine - Behavior Driven Development testing framework for JavaScript. It does not rely on browsers, DOM, or any JavaScript framework. Thus it's suited for websites, Node.js projects, or anywhere that JavaScript can run.
Intern - is a complete test stack for JavaScript designed to help you write and run consistent, high-quality test cases for your JavaScript libraries and applications. It can be used to test any JavaScript code. Its functional testing capabilities can even be used to test non-JavaScript Web and mobile apps, if you really want.
Chai - Chai is a BDD / TDD assertion library for node and the browser that can be delightfully paired with any javascript testing framework