am 8. Oktober 2009
Ich habe ja schon häufig über Selenium geredet, so wirklich erklärt, was dieses Tool aber ist, habe ich glaube ich noch nicht gemacht. Deswegen heute mal eine ganz kurze Einführung, was Selenium eigentlich ist und wofür man es verwenden kann.
Tja wofür kann ich Selenium nutzen? Prinzipiell geht es hier um funktionale Tests, die im Browser ausgeführt werden. Wir zeichnen also eine Userstory mit den gegebenen Werkzeugen auf, um sie danach automatisiert wieder einzuspielen und zu schauen, ob sie immer noch so funktionieren, wie davor.
Ein einfaches Beispiel wäre hier die Prüfung auf Funktionstüchtigkeit eines Login Mechanismus. Wie würde ich da vorgehen? Nehmen wir doch einfach mal eine gewöhnliche Seite. Im ersten Schritt prüfe ich, ob das Username und Passwort Feld existiert. Wenn ja, dann schreibe dort Username und Passwort rein (scharfsinnig, oder?). Wenn ich dann eingelogt bin, sollte dort ein Logout-Button stehen und kein Username und Passwort Feld mehr. Zum Schluss logge (schreibt man das so?) ich mich wieder aus und prüfe nochmal ob die gewünschten Felder wieder vorhanden sind.
So könnte eine klassische Userstory aussehen. Will ich jetzt einen funktionalen Test dazu schreiben, dann installiere ich mir erst mal das Selenium IDE Plugin für den Firefox.

So Screenshot geklaut, damit ihr mal sehen könnt, wie das aussieht. Hier könnt ihr euch mit ganz einfachen Mitteln eure Story zusammenklicken (nach der Installation einfach mal mit Rechts auf ein HTML Element klicken) oder einfach aufzeichnen lassen, was ihr so macht. Drückt ihr danach auf die Play Taste, dann wird alles abgespielt, was ihr so aufgezeichnet habt.
Wenn ihr damit fertig seid, dann habt ihr schon den ersten und wichtigsten Schritt in Richtung Automatisierung gemacht. Ich hatte euch ja versprochen, dass dies wirklich nur ein erstes Grundkust sein sollte. Themen, die man noch angehen könnte, wären:
- Automatisierung mit PHPUnit
- Was sollte ich testen und was nicht?
- Was kann ich testen?
- Wie funktioniert Selenium eigentlich, läuft ja schließlich in “allen” Browsern und “allen” Betriebssystemem?
- Warum ist doch nicht alles Gold was glänzt?
- Wie kann mir ein stabiles Wireframe helfen, meine Tests zu verbessern?
- Welche anderen Bestandteile hat Selenium? Grid, RC, …
Sooooo … jetzt könnt ihr euch einfach was aussuchen, über das ich philosophieren soll und dann schreibe ich nächste Woche was drüber. Falls euch das alles langweilt, dann bekommt ihr einfach was anderes serviert. Vielleicht aber auch nicht, denn wir leben hier ja in einer Monarchie.
Ach ja, das sollte übrigens wirklich nur ein winziger Ausblick sein. Ich wollte nur in ein zwei Sätzen erklären, was Selenium ist. Für die ausführliche Beschreibung nehme ich mir dann mal mehr Zeit, denn das Tool ist zu interessant, um es mal eben so zu beschreiben.