A repost of my old (still valid) article published on Medium in 2023.
In recent years, I have witnessed a number of test automation attempts using the following automation framework in JavaScript:
PhantomJS (deprecated)
WebDriverIO
Protractor (deprecated)
TestCafe
Puppeteer
All those test automation attempts shared a common fate: Failure, assessed against the objective Definition of End-to-End Test Automation Success. As a comparison, I have achieved 100% success with raw Selenium + RSpec since 2011 for client projects and my own.
When I screened Résumés, any mentions of the above JS framework would score a negative point. It is much better to hire a complete layman (check out my workshop articles).
I expressed my view on using JavaScript in test automation: Why is JavaScript not a Suitable Language for Real Web Test Automation? In this article, I will provide additional thoughts from a fresh perspective.
Programmers tend to be fixated/biased on a preferred language. I am more objective than most, as My Selenium Recipes Book series covers all five Selenium’s official binding languages. I do know JavaScript, quite well.
Educative likes the Selenium Recipes in Node.js book, and they converted it into an online interactive course.
Some readers might think, “You seem to have used JS, too?!”. Yes, I did create a number of JS tests (for various reasons) and didn’t like it. Creating a few automated tests does not mean mastering test automation, not at all. Real test automation engineers who can maintain all automated end-to-end (via UI) tests every day can provide real & great benefits.
I could develop and maintain a suite of 200 end-to-end (user story level via UI) tests in JavaScript, either WebDriverIO, Cypress or Playwright, because I have been doing hands-on test automation for nearly 18 years and with an international reputation. However, frankly, I would be struggling with a large JS suite (say 200+ end-to-end via UI tests, level 3 of AgileWay Continuous Testing Grading) daily if the application frequently changes, which is almost certain these days.
FYI, I have been developing and testing several large apps, such as TestWise, ClinicWise, SiteWise, BuildWise, WhenWise and TestWisely, in my spare time, solo.
I would be quite comfortable maintaining a 500+ raw Selenium RSpec (Ruby) test suite (in fact, I have been doing that for the clients’ and my own several apps’ end-to-end test suites). By the way, since 2012, for any test automation proof of concepts in any framework/language, I always created the tests in raw Selenium+RSpec first. The reason, it is intuitive and easy.
Syntax Change Too Often in the JavaScript world
Keep reading with a 7-day free trial
Subscribe to The Agile Way to keep reading this post and get 7 days of free access to the full post archives.