Run Selenium tests in Drupal on Debian headless

In previous article (http://ygerasimov.com/integrating-selenium-to-drupal-simpletest-framework) I have written about introducing Selenium tests to Drupal simpletest framework.

The first question I got on IRC from Randy Fay was whether we can run selenium tests from console. Today I have managed to do that and I would like to share how to set environment.

So demo first!





I have installed clean Debian to my VirtualBox. Installed lamp stack and java environment. Cloned and installed http://drupal.org/sandbox/ygerasimov/1131210 project with module from http://drupal.org/sandbox/ygerasimov/1131220.

The main trick to run tests headless is Xvfb tool (http://en.wikipedia.org/wiki/Xvfb) to emulate X windows and run applications from console. Installation of this tool is quite easy (sudo apt-get install xvfb).

Then before we start our selenium server we need to start xvfb:

Xvfb :99 -ac &
export DISPLAY=:99


Some nice instructions can be found here http://www.alittlemadness.com/2008/03/05/running-selenium-headless/

If you would like to test your xvfb running with capturing screenshot with "import -window ..." please remember to install imagemagick tools (sudo apt-get install imagemagick).

Then we can start our Selenium server and run our tests.

To run tests from Selenium Test Example module we should run:

sudo -u www-data php ./scripts/run-tests.sh --url http://192.168.1.15/selenium --class SeleniumTestExample


I believe Selenium is really great tool that we can use in our daily development and now we can even run it on server. I hope it would be possible to integrate this testing to testing infrastructure of the d.o.

Lets see how it goes! Happy testing!

Comments

We've been fussing and fuming about this for ages and here you've done it. Congratulations. Looking forward to seeing this make it into our testing infrastructure.

Very nice work! JS tests in PIFR would make it easier to upgrade jQuery versions, catch issues with new browsers as they're released, and add more confidence to the review process. This definitely deserves some attention!