Skip to content

Latest commit

 

History

History
168 lines (126 loc) · 13.3 KB

javascript-test-automation.md

File metadata and controls

168 lines (126 loc) · 13.3 KB

JavaScript test automation

A comprehensive curated list of JavaScript test automation frameworks, tools, libraries and software to help software engineers easily bootstrap test automation on JavaScript. Sponsored by http://sdclabs.com

Have questions\issues\problems, join the chat at https://gitter.im/atinfo/awesome-test-automation

Table of content:

Also:


xUnit frameworks

Contribute to this section

TDD \ ATDD \ BDD

  • BDD/TDD
    • WebdriverIO - Nodejs webdriver bindings implementation, based on JsonWire protocol. Requires selenium server running. Includes promises, extended syntax, asynchronus calls with callbacks etc. Also supports SauceLabs, BrowserStack and many other online tools.
    • WebdriverJS - webdriver nodejs implemetations from authors of selenium, includes all basic features and commands.
    • MochaJS - feature-rich JavaScript test framework running on node.js and the browser.
    • 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.
    • CodeceptJS - Modern era acceptance testing for NodeJS
    • Chai - Chai is a BDD / TDD assertion library for node and the browser that can be delightfully paired with any javascript testing framework
  • TDD
    • Karma - test runner for making TDD much easier by pre-build test environments.
  • BDD
    • 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.
    • 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.

Mock frameworks

  • Sinon.JS - Standalone test spies, stubs and mocks for JavaScript. No dependencies, works with any unit testing framework.
  • JSMockito - JsMockito is a JavaScript stub/mock framework heavily inspired by java's Mockito.
  • apimocker - This is a node.js module to run a simple http server, which can serve up mock service responses. Responses can be JSON or XML to simulate REST or SOAP services.

Code analysis

  • ESLint - Pluggable JavaScript linting tool. Custom rules can be added to extend the existing functionality.
  • HintJS - Community driving js code analysis tool supported by twitter, facebook, wiki, jquery, mozilla, yahoo and others.
  • JsLint - JavaScript syntax checker and validator.

Web UI test automation

  • WebdriverIO - Nodejs webdriver bindings implementation, based on JsonWire protocol. Requires selenium server running. Includes promises, extended syntax, asynchronus calls with callbacks etc. Also supports SauceLabs, BrowserStack and many other online tools.
  • WebdriverJS - webdriver nodejs implemetations from authors of selenium, includes all basic features and commands.
  • Protractor - End-to-end test framework for AngularJS applications.
  • 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.
  • Nightmare - A high-level browser automation library.
  • Gemini - Is an open-source utility for automating visual regression testing of web pages. Gemini takes a screenshot of elements on a page and compares it with baseline images of these elements. If the images don't match, the differences are shown in a report.
  • Hermione - Is the utility for integration testing of web pages using WebdriverIO and Mocha.
  • Gremlins.js - gremlins.js is a monkey testing library written in JavaScript, for Node.js and the browser. Use it to check the robustness of web applications by unleashing a horde of undisciplined gremlins.

Mobile test automation

  • WebdriverIO's Appium implementation - nodejs bindings implemeting Appium commands.
  • Macaca - Solution for Automation Test with Ease. Both Mobile, Desktop Platforms Supported, native, Hybrid, Mobile Web Multi-applications Supported, Command line tools & CI Solution provided.

Windows UI test automation

  • RobotJS - The Node.js Desktop Automation Library
  • SikuliX - SikuliX automates anything you see on the screen of your desktop computer running Windows, Mac or some Linux/Unix. It uses image recognition powered by OpenCV to identify and control GUI components. This is handy in cases when there is no easy access to a GUI's internals or the source code of the application or web page you want to act on.

Contribute to this section

Unix \ Linux UI test automation

  • SikuliX - SikuliX automates anything you see on the screen of your desktop computer running Windows, Mac or some Linux/Unix. It uses image recognition powered by OpenCV to identify and control GUI components. This is handy in cases when there is no easy access to a GUI's internals or the source code of the application or web page you want to act on.

Contribute to this section

MacOS UI test automation

  • SikuliX - SikuliX automates anything you see on the screen of your desktop computer running Windows, Mac or some Linux/Unix. It uses image recognition powered by OpenCV to identify and control GUI components. This is handy in cases when there is no easy access to a GUI's internals or the source code of the application or web page you want to act on.

Contribute to this section

Virtual environments

Contribute to this section

Performance & stress & load

  • k6 - Like unit testing, for performance. A modern load testing tool, using Go and JavaScript.

Security checking

Continuous Integration

  • Strider CD - Open Source Continuous Deployment / Continuous Integration platform written in NodeJS.
  • Gulp - Streaming building system/task runner in nodejs. Based on streaming data flow conception (https://github.com/substack/stream-handbook).
  • Grunt - Streaming building system/task runner in nodejs. Can't do anything without plugins, but there are many of them for all kinds of purposes.

Reporting

  • Istanbul - JS coverage tool for unit tests, server side functional tests and browser tests.
  • Blanket - JavaScript code coverage library that works both in-browser and with nodejs.
  • Mochawesome - reporter for Mocha that generates a full fledged HTML/CSS report that helps visualize your test suites
  • Allure - a universal reporter for any testing framework. Supports Mocha and Jasmine (and Protractor)

Documentation generation

  • JSdoc3 - An API documentation generator for JavaScript
  • jsdoc-to-markdown - Generates markdown API documentation from jsdoc annotated source code.
  • Docco - Docco is a quick-and-dirty documentation generator, written in Literate CoffeeScript
  • MrDoc - A personal source documenter
  • YUIDocs - YUI's JavaScript Documentation engine
  • ESDoc - Configurble documentation generator with good ES6/ES7 support

Contribute to this section

Editors, IDE, consoles

  • WebStorm - PhpStorm without php support. One of thee most powerfull JS/HTML IDE.
  • Brackets - Open source newly released IDE for JS/HTML from Adobe.
  • Komodo - Cross platform IDE for multiple languages, strongly supporting JS.
  • Cloud9 - Cloud based nodejs IDE supporting multiple features, eg. pair programming, preview in a new browser, built-in image editor, terminal and many others
  • Visual Studio Code - Cross platform editor from Microsoft, with integrated Node.js debugger and hooks for taskrunners such as Gulp
  • Atom - Full-featured, right out of the box text editor that's modern, approachable, yet hackable to the core from Github

Useful libs

Contribute to this section

Resources

Where to discover new libraries, information, tools, etc.

Websites

Other Awesome Test Automation Lists

Also we are supporting and looking for contribution for project:

Your contributions are always welcome!