Selenium/Node.js/Remote unix vm

From mediawiki.org

For this example, we will target English Wikipedia at the Beta Cluster. You will need internet access.

Advantages[edit]

  • You do not have to install or learn how to use MediaWiki-Vagrant.
  • It will be reasonably fast.
  • Debugging failed tests will be easier, since you will see the browser.

Disadvantages[edit]

  • You will need internet connection while running the tests.
  • The tests will be slower since the target machine is not local.
  • You will have to install Selenium and it's dependencies on your machine.
  • While the tests are running the host machine will be hard to use because Chrome will be opening and closing for every test (but not stealing focus).

Clone MediaWiki core[edit]

There are several ways to clone the MediaWiki core repository (anonymous http, http, ssh). We will use anonymous http since it is the simplest.

$ git clone https://gerrit.wikimedia.org/r/mediawiki/core mediawiki

Go to mediawiki folder[edit]

$ cd mediawiki

Install dependencies[edit]

You will need internet access for this step. Depending on your operating system, installing dependencies will be different.

Chrome[edit]

sudo dpkg -i google-chrome*.deb
sudo apt-get -f install
  • Download ChromeDriver and put it in a folder included in PATH.
cd ~
wget https://chromedriver.storage.googleapis.com/2.30/chromedriver_linux64.zip
unzip chromedriver_linux64.zip
export PATH=$PATH:~

Node.js[edit]

  • Install Node.js.
  • Install required npm packages.
$ npm install

xvfb[edit]

 sudo apt install xvfb
 export CHROME_BIN=/usr/bin/google-chrome
 export DISPLAY=:99.0
 sh -e /etc/init.d/xvfb start

Run the Selenium tests[edit]

replace en.formulasearchengine.com with your FQDN

export MW_SERVER=https://en.formulasearchengine.com
 xvfb-run npm run selenium

Please note that all tests will fail at the moment, but you will see reasonable screenshots of your login window in the log folder.