Verfasst von: bletra | 19. Oktober 2011

Weboberflächen mit Selenium automatisiert testen

Im Praktikum der Veranstaltung „Entwicklung webbasierter Anwendungen“  ist eine integrierte webbasierte Anwendung zur Unterstützung eines Pizzaservices zu entwickeln. Bei der Bestellung kann der Kunde seine Pizzen aus der Speisekarte auswählen und in einen Warenkorb übernehmen.

Die Applikation ist bewusst einfach gehalten, um anhand dieses Beispiels exemplarisch alle wesentlichen Technologien zu erarbeiten und die Aufgabe strukturiert und wiederverwendbar zu entwickeln. Als Warenkorb wird daher eine einfache List-Box (HTML-Tag: Select) gewählt, in die die Pizzen als Option-Elemente eigefügt werden. Ein beispielhaft gefüllter Warenkorb (ohne Design) zeigt die Abbildung links.

Wesentlicher Ausschnitt des zugehörigen Markups:

<form ...>
<p>
<select id="ShoppingCart" ...>
<option ...>Palermo</option>
<option ...>Hawaii</option>
<option ...>Vegetaria</option>
<option ...>Salami</option>
</select>
</p>
<p><span id="TotalPrice">23,50</span> &euro;</p>
...
</form>

Mit dem Firefox-Addin Selenium lassen sich sehr einfach Web-Oberflächetests entwickeln. Was Sie hierfür tun müssen beschreiben ich anhand eines einfachen Anwendungsfall der gegebenen Pizzaanwendung.
Gegeben sei folgender Anwendungsfall:
Löschen im Warenkorb: Im Warenkorb kann man alle Pizzen oder auch mehrere ausgewählte Pizzen löschen. Der Preis wird aktualisiert.
Test: Warenkorb füllen mit jeweils einer Palermo, Hawaii, Vegetaria und Salami. Dann die Salami und die Hawaii markieren und diese Auswahl löschen. Im Warenkorb verbleiben Palermo und Vegetaria. Neuer Preis: 13,50 €

Im Folgenden beschreibe ich die Umsetzung des dargestellten Test mit Selenium. Starten Sie hierzu Firefox->Webentwickler->Selenium IDE

Rechts-Klicken Sie auf den angelegten Testfall und wählen Sie Properties aus. Vergeben Sie einen sinnvollen Namen. Gehen sie nun in das Tab „Table“ und drücken Sie den Aufnahmeknopf.
Laden Sie Ihre Bestellseite, legen Sie die Pizzen Palermo, Hawaii, Vegetaria und Salami in den Warenkorb. Markieren Sie Salami und Hawaii im Warenkorb und wählen Sie „Auswahl löschen“. Beenden Sie die Testaufzeichnung.
Nun müssen Sie noch überprüfen, ob die richtigen Pizzen im Warenkorb stehen und der Preis stimmt.
Klicken Sie hierzu ans Ende der bisher erzeugten und in der Tabelle angezeigten Befehle und definieren Sie folgenden neuen Befehl:
Command: assertText
Target: TotalPrice
Value: 13,50
Die verbleibenden Pizzen im Select-Feld kann man mit folgendem Befehl überprüfen:
Command: assertSelectOptions
Target: ShoppingCart
Value: Palermo,Vegetaria

Auf diese Weise kann man weitere Testfälle erstellen und in einer Suite speichern. Selenium verwendet hierzu eine leicht verständliche HTML-Struktur. Gut gefällt mir auch die Auto-Vervollständigung, so dass man bei den Asserts recht gut die passenden Befehle findet. Die Referenz der einzelnen Commands ist kompakt und dennoch verständlich gehalten.
Die Tests können einzeln ausgeführt werden oder alle Tests einer „Suite“ können ausgeführt werden. Es gibt Breakpoints und bei Asserts gibt es im Fehlerfall die übliche Meldung mit dem erwarteten und dem tatsächlichen Wert.

Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

Kategorien

%d Bloggern gefällt das: