[Engineering] Selenium tests in Node.js

Željko Filipin zfilipin at wikimedia.org
Mon Apr 3 10:00:54 UTC 2017


# TL;DR

You can now write Selenium tests in Node.js! Learn more about it at
https://www.mediawiki.org/wiki/Selenium/Node.js

# Introduction

Five years ago we introduced browser tests using Selenium and a Ruby based
stack. It has worked great for some teams, and not so great for others.
Last year we talked to people from several teams and ran a survey[0]. The
outcome is a preference toward using a language developers are familiar
with: JavaScript/Node.Js.

After several months of research and development, we are proud to announce
support for writing tests in Node.js. We have decided to use
WebdriverIO[1]. It is already available in MediaWiki core and supports
running tests for extensions.

You can give it a try in MediaWiki-Vagrant[2]:

vagrant up
vagrant ssh
sudo apt-get install chromedriver
export PATH=$PATH:/usr/lib/chromium
cd /vagrant/mediawiki
xvfb-run npm run selenium

# Documentation

Extensive details are available on the landing page:
https://www.mediawiki.org/wiki/Selenium/Node.js

# Future

We plan to replace the majority of Selenium tests written in Ruby with
tests in Node.js in the next 6 months. We can not force anybody to rewrite
existing tests, but we will offer documentation and pairing sessions for
teams that need help. After 6 months, teams that want to continue using
Ruby framework will be able to do so, but without support from Release
Engineering team.

I have submitted a skill share session for Wikimedia Hackathon 2017 in
Vienna[3]. If you would like to pair on Selenium tests in person, that
would be a great time.

The list of short term actions is in task T139740[4].

# Thanks

I would like to thank several people for reviews, advice and code:
Jean-Rene Branaa, Dan Duvall, Antoine Musso, Jon Robson, Timo Tijhof.
(Names are sorted alphabetically by last name. Apologies to people I have
forgot.)

# References

[0]  https://www.mediawiki.org/wiki/Browser_testing_user_satisfaction_survey
[1] http://webdriver.io/
[2] https://www.mediawiki.org/wiki/Selenium/Node.js/Inside_MediaWiki-Vagrant
[3] https://phabricator.wikimedia.org/T159945
[4] https://phabricator.wikimedia.org/T139740

Željko Filipin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.wikimedia.org/pipermail/engineering/attachments/20170403/06d47737/attachment.html>


More information about the Engineering mailing list