Skip to content

Instantly share code, notes, and snippets.

@Naedri
Last active August 29, 2023 14:02
Show Gist options
  • Save Naedri/db2ee20d88592a4fbb06340d5eed857d to your computer and use it in GitHub Desktop.
Save Naedri/db2ee20d88592a4fbb06340d5eed857d to your computer and use it in GitHub Desktop.
Comparison of Various JavaScript Testing Frameworks and Libraries for UI and Beyond
Criteria Comments WebdriverIO TheIntern Nightwatch TestCafΓ© Playwright
Compatibility
🀝
Supported Application Types Web, Mobile, and Desktop Applications βœ” βœ” βœ” βœ” βœ”
Platform Compatibility Browsers, Operating Systems βœ” βœ” βœ” βœ” βœ”
Documentation
πŸ“š
User-Friendly with Examples βœ” βœ” βœ” βœ” βœ”
Search Engine Facilitates finding key information βœ” βœ” βœ” βœ” βœ”
Test Writing
✍️πŸ§ͺ
Programming Languages JS, TS, Java, Python, etc. βœ” βœ” βœ” βœ” βœ”
Page Object Model βœ”
(heavy)
βœ”
(heavy)
βœ”
(elegant)
βœ”
(heavy)
βœ”
(heavy)
Configuration Complexity Low, Medium, or High Medium Medium Low Low Medium
Record and Playback Test writing without programming βœ”
(internal plugin)
βœ”
(internal plugin)
βœ”
(internal plugin)
βœ” βœ”
Test Method Functionality
βš™οΈπŸ§ͺ
Extensibility Extend existing functionalities βœ” βœ” βœ” βœ” βœ”
Multiple Windows βœ” βœ” βœ” ❌
(Edge)
βœ”
iFrame Handling βœ” βœ” βœ” βœ” βœ”
Drag and Drop of External Objects From file explorer βœ”
(WebDriver Bidi, CDP)
❌ βœ”
(WebDriver Bidi, CDP)
❌ βœ”
(WebDriver Bidi, CDP)
Test Execution
▢️πŸ§ͺ
Test Stability Automatic retries and waits βœ” ❌
(no auto-retry)
βœ” ❌
(no auto-retry)
βœ”
Test Runners Mocha, Cucumber, Jest, Jasmine, etc. βœ”
(internal plugin)
βœ”
(external plugin)
βœ” βœ”
(configurable)
❌
(no Cucumber)
With or Without UI Visibility Traditional mode (with) or headless (without) βœ” βœ” βœ” βœ” βœ”
Debugging βœ” βœ” βœ” βœ” βœ”
Network Request Interception βœ” βœ” βœ” βœ” βœ”
Continuous Integration GitHub Actions, AWS CodeBuild, Jenkins, etc. βœ” βœ” βœ” βœ” βœ”
Parallel Execution βœ” βœ” βœ” βœ” βœ”
Cloud Test Providers BrowserStack, Sauce Labs, LambdaTest, etc. βœ” βœ” βœ” βœ”
(limited)
βœ”
Execution Reporting
πŸ“ŠπŸ§ͺ
Screenshots On-demand or at assertion moments βœ” βœ” βœ” ❌
(on mobile)
βœ”
DOM Node Snapshot ❌ ❌ βœ” βœ” βœ”
(external plugin)
Available Reporters JUnit, Mocha, HTML, JSON, etc. βœ” ❌
(Mocha, JSON)
βœ” ❌
(Mocha)
❌
(Mocha)
Code Coverage Analysis βœ” βœ” βœ” βœ” βœ”
License
πŸ“„πŸ”‘
License Name Apache-2.0, MIT, ISC, BSD-3-Clause, etc. Apache-2.0 BSD-3-Clause MIT MIT Apache-2.0
Free to Use βœ” βœ” βœ” βœ” βœ”
Open Source Code βœ” βœ” βœ” βœ” βœ”
Communication
πŸ’¬πŸ§ͺ
Execution Level High or Low (inside or outside the browser) Low Low Low High Low
Protocol WebDriver, NodeJS, Chrome DevTools Protocol WebDriver, WebDriver Bidi
CdP
WebDriver WebDriver, WebDriver Bidi NodeJS, Web API WebDriver, WebDriver Bidi
CdP
Sustainability
🌱
Financial or Human Support Sponsors, foundation, reputable company OpenJS Foundation OpenJS Foundation BrowserStack Independent Microsoft
Age Version 1.0.0 Release Date 2012 2013 2014 2016 2020
Updates (Last 3 Months) Version Changes 8.10.5 -> 8.15.5 4.10.1
(since 11/21)
3.0.0 -> 3.1.3 2.6.0 -> 3.2.0 1.34.0 -> 1.37.1
Many breaking changes
Reliability (Last 3 Months) Bugs Detected / Resolved 29 / 80 0 / 0
(since 01/22)
28 / 29 23 / 106 164 / 715
Ecosystem
🌐
Community Health Online platform assistance Very Active Inactive Active Paid Support Very Active
Popularity Monthly npm Downloads 5.6M 88.2K 784.2K 1M 5.9M
Beyond UI Testing
πŸ› οΈπŸ§ͺ
Visual Regression Testing βœ”
(external plugin)
βœ”
(internal plugin)
βœ”
(internal plugin)
βœ”
(configurable)
βœ”
API Testing ❌ ❌ βœ” βœ” βœ”
Component Testing React, Angular, Vue, etc. βœ”
(external plugin)
❌ βœ”
(external plugin)
❌
(AngularJS)
❌
(React)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment