
Selenium tests in Node.js project retrospective
I have been working on the project with more or less focus on it since 2015. Maybe the easiest way to follow the project is by taking a look at a few epic tasks:
- T139740: Port Selenium tests from Ruby to Node.js (2015-2017)
- T182421: Q3 Selenium framework improvements (2018)
- T182986: Selenium framework improvements (where no one has gone before)
T182421: Q3 Selenium framework improvements will come to an end in a few days, so last week a few of us had a meeting to discuss the project.
Conclusions:
- The new Node.js Selenium framework is simpler and easier to use than previous Ruby framework.
What could have gone better:
- A lot of effort is required to port large test suites. Some teams were able to do it, some teams were not.
- It was not clear that both Ruby and Node.js frameworks could coexist.
- It was not clear that Mocha is recommended, but not mandatory. It is still possible to write Cucumber tests.
- Some features of the Ruby framework are not available in Node.js framework, like multi-user login.
- Node.js's built-in assertion library sometimes doesn't provide useful error messages. Chai is a good alternative.
- It would be better if a meeting like this happened at the beginning of the project, and several times during the project.
Things to do:
- Meeting report (this blog post).
- T182421: Q3 Selenium framework improvements and T182986: Selenium framework improvements.
- I am always looking for people to help me review framework improvements, see T188744: Find a few people interested in reviewing Selenium patches.
- We will meet again, at least every quarter, as long as the project is ongoing.
- This meeting was long (80 minutes). Time-box next meetings to 50-60, or even 20-30 minutes.
- At Wikimedia Hackathon 2018 I will lead T190046: Write Selenium tests in JavaScript/Node.js workshop workshop, and T190687: Pair on writing Selenium tests in JavaScript/Node.js will be happening during the entire hackathon.
Meeting notes are available at 20180320 Selenium Retrospective.
Image by Paul Friel - Meerkat II, CC BY 2.0, https://commons.wikimedia.org/w/index.php?curid=24567063