Voraussetzung für alle weiteren Schritte ist ein Versionsmanagement – genauer SVN oder Git. Es wird ein Versionsmanagement benötigt, auf den die Continues Integration zugreifen kann – ein interner GIT-Server taugt hier zum Beispiel ebenso wie GitHub oder Bitbucket.
Schritt 1: Selenium
Die Selenium IDE ist vielen bekannt und ein denkbar einfach zu bedienendes Plugin für Firefox. Mit dem Plugin kann Interaktion mit einer Webseite aufgezeichnet und später wieder ausgeführt werden. Bei komplexeren Webseiten sind vor allem zwei Arten von Nacharbeiten notwendig: Werden Ajax-Request ausgeführt, so muss Selenium mitgeteilt werden, woran der erfolgreiche Abschluss erkannt werden kann. Außerdem müssen gelegentlich die Pfade der HTML-Elemente überarbeitet werden, um ein stabiles Ergebnis zu erhalten. Lässt sich der Selenium-Test erfolgreich ausführen, ist Schritt 1 abgeschossen. Das Ergebnis wird als Selenium-HTML-Datei gespeichert und in Schritt 5 wieder benötigt.
Weiterführende Informationen zu Selenium:
- http://seleniumhq.org/
- http://www.infoq.com/articles/testing-ajax-selenium
- http://hedleyproctor.com/2011/05/tutorial-writing-xpath-selectors-for-selenium-tests/
Schritt 2: Ubuntu aufsetzen
Nun benötigen wir einen Server mit einem aktuellen Ubuntu; auch eine virtuelle Maschine reicht in aller Regel aus. Natürlich funktionieren auch andere Linux-Systeme, die allerdings teilweise mit anderen Paket-Managern daherkommen. Entsprechend werden dann auch andere Befehle zur Installation benötigt. Auf dem System müssen wir nun imagemagick, git, java und ggf. firefox installieren. Dazu benötigen wir in einer Shell die folgenden Befehle:apt-get install imagemagick
apt-get install git
apt-get install openjdk-7-jdk
apt-get install firefox
Der letzte Befehl ist nur dann notwendig, wenn Firefox nicht bereits installiert ist.
Schritt 3: Xvfb – Virtuellen Bildschirm installieren
Das System soll mit Selenium einen Browser steuern und dieser Browser benötigt einen Bildschirm. Da wir aber (in aller Regel) keinen Bildschirm an das System anschließen können oder wollen, muss unser Bildschirm virtuell sein. Dazu installieren wir X Window Virtual Framebuffer – kurz Xvfb:apt-get install xvfb
Den virtuellen Bildschirm testen wir zunächst mit der Dummy-Applikation xclock, die eine Uhr darstellt:
/usr/bin/Xvfb :5 -ac -screen 0 1024x768x8 &
xclock -display :5.0 &
xwd -root -display :5.0 -out outputfile
convert outputfile outputfile.png
Geht alles gut, so ist die oben abgebildete Uhr im outputfile.png zu sehen. Im nächsten Schritt führen wir den gleichen Test mit Firefox durch:
/usr/bin/Xvfb :5 -ac -screen 0 1024x768x8 &
export DISPLAY=:5.0
firefox
xwd -root -display :5.0 -out outputfile
convert outputfile outputfile.png
Läuft Firefox nicht, muss es möglicherweise nachinstalliert werden. Weitere Informationen zum gesamten Schritt 3 finden sich hier: http://centripetal.ca/blog/2011/02/07/getting-started-with-selenium-and-jenkins/
Schritt 4: Hudson installieren
Nun installieren wir das Continues Integration System: Hudson. Der Prozess sollte mit Jenkins analog funktionieren, ich habe es allerdings nicht ausprobiert. Hierzu sind ein paar Schritte notwendig, deren Bedeutung in den Links am Ende des Abschnitts nachvollzogen werden können:sh -c "echo 'deb http://hudson-ci.org/debian binary/' > /etc/apt/sources.list.d/hudson.list"
apt-get update
apt-get install hudson</div>
<div>