Benutzer:Chrisma0: Unterschied zwischen den Versionen
Zeile 39: | Zeile 39: | ||
* Python |
* Python |
||
Auch für mobile Plattformen (Android<ref name="androiddriver"> [http://code.google.com/p/selenium/wiki/AndroidDriver AndroidDriver], WebDriver für Android.</ref> und iOS<ref name="iosdriver"> [http://code.google.com/p/selenium/wiki/IPhoneDriver IPhoneDriver], WebDriver für iOS.</ref>) gibt es WebDriver. Weitere Browserunterstützung (z.b. für Chrome, Opera) und WebDriver (z.B. für PHP oder Perl)<ref name="download" /> werden von der Community entwickelt und gepflegt. |
Auch für mobile Plattformen (Android<ref name="androiddriver"> [http://code.google.com/p/selenium/wiki/AndroidDriver AndroidDriver], WebDriver für Android.</ref> und iOS<ref name="iosdriver"> [http://code.google.com/p/selenium/wiki/IPhoneDriver IPhoneDriver], WebDriver für iOS.</ref>) gibt es WebDriver. Weitere Browserunterstützung (z.b. für Chrome, Opera) und WebDriver (z.B. für PHP oder Perl)<ref name="download" /> werden von der Community entwickelt und gepflegt. |
||
==== Einfaches Beispiel ==== |
|||
Auch in diesem Beispiel soll wieder mit einer Suchmaschine gesucht werden. Als Programmiersprache soll Python eingesetzt werden. Dazu muss der richige WebDriver installiert werden, Da sich dieser im Python Package Index befindet kann er mit ''pip install selenium'' installiert werden. Die [http://seleniumhq.org/docs/03_webdriver.html#setting-up-a-selenium-webdriver-project Dokumentation] hält auch Schritte für andere Programmiersprachen bereit. Jetzt steht ein Objekt bereit mit dessen Methoden man den Firefox steuern kann. |
|||
[[Datei:Datei:Python_selenium_sample_code.png|thumb|Python Beispiel Code. Mit Selenium wird eine Google-Suche nach "Cheese!" gestartet und der Titel der Webseite ausgegeben.]] |
|||
== Quellen == |
== Quellen == |
Version vom 17. Mai 2012, 22:01 Uhr
Web Tests mit Selenium
Was ist Selenium
Selenium ist ein Framework für Browserautomatisierung und Testframework für Webapplikationen. Es führt reale Interaktionen mit Webseiten durch. So kann Selenium z.B. automatisch einen Browser öffnen, zu einer URL navigieren, Text eingeben, einen Button anklicken danach testen ob die Fehlermeldung im resultierenden Popup auf der Seite die richtige ist. Damit kann viel normalerweise manuelles, zeitaufwändiges Testen (z.B. das Ausfüllen von Formularen) automatisiert werden. Selenium läuft auf vielen Plattformen inkl. Windows, Linux und Mac.[1]
Vorteile von Selenium
In den häufig eingesetzten Testingframeworks moderner Programmiersprachen, wie JUnit, RSpec etc. werden hauptsächlich Module oder Funktionen getestet. Dieser Ansatz funktioniert auch mit Webapps recht gut, so können z.B. die Controllerfunktionen (in einer Model-View-Controller Architektur) einer Webanwendung getestet werden. Auch die Interaktion per HTTP (GET, POST Requests) kann mit speziellen Bibliotheken recht bequem getestet werden. Bei interaktiven, mit viel Javascript und Ajax geschriebenen Seiten versagt dieser Ansatz. Das Javascript wird ausgeführt und interagiert mit dem Document Object Model (DOM) der Webseite. Dies ist mit den traditionellen Testingframeworks nicht testbar, da das Ausführen von Javascript nicht unterstützt wird. Dies ist verständlich, da sie hauptsächlich für das Testen der Entwicklungssprache gedacht sind. Statt nun Frameworks mit einem Javascriptinterpreter auszurüsten kann mit Selenium der Browser und deren - bereits bestehende und nachweislich funktionierende - HTML-Renderer und Javascript-Engines verwendet werden.
Entwicklung / Geschichte
Selenium wurde ursprünglich 2004 von der amerikanischen Firma ThoughtWorks entwickelt. Das Projekt ist freie Software und steht unter der Apache 2.0 Lizenz.[2]. Das Projekt wird von der Community weiterentwickelt, wobei auch Mitarbeiter von Google zum Projekt beitragen.[3]. Mehrere kommerzielle Firmen bieten Support für den professionellen Einsatz an.[4].
Selenium im Einsatz
Selenium kann in zwei verschiedenen Varianten eingesetzt werden:
- Selenium IDE, ein Firefox Add-on das Browserinteraktionen aufzeichnen und wiedergeben kann und mit dem Tests auch ohne Kenntnisse einer Programmiersprache erstellt werden können. Weiterhin gibt es die Möglichkeiten ausgezeichnete Tests zu bearbeitet (bzw. neue zu schreiben) und diese zu exportieren.
- Selenium WebDriver, eine Sammlung von Selenium-Bindings für die gängisten Programmiersprachen, mit denen Seleniumtests in der Sprache der Wahl geschrieben werden können.
Selenium IDE
IDE soll in diesem Zusammenhang für Integrated Development Environment stehen, d.h. es wird eine komplette integrierte Entwicklungsumgebung für Seleniumtests als Plugin für Firefox zur Verfügung gestellt. Unter anderem bietet die IDE Auswahl von HTML-Elementen per ID, name oder XPath, Autovervollständigung und Debugging per Haltepunkten[5], sowie viele weitere Funktionalität (z.B. einen Screenshot bei Fehlern zu erstellen[6]) durch den Einsatz von Plugins.[7]
Download / Dokumentation
Die Selenium IDE .xpi (Firefox add-on) ist nicht auf der offiziellen Mozilla Add-ons Webseite verfügbar, sondern muss direkt von der Selenium Downloadeite heruntergeladen werden. Viele Plugins für die IDE befinden sich jedoch auf der Add-on Seite. Es gibt eine ausführliche Dokumentation zur Selenium IDE, die die einzelnen Elemente genau erklärt.
Einfaches Beispiel
-
Der "Selenium IDE" Eintrag befindet sich im Tools Firefox Menü.
-
Nach dem Start ist der "Aufnahmemodus" (roter Button oben rechts) bereits aktiv.
-
Im Browser können nun Interaktionen mit Webseiten durchgeführt werden. (Hier: Websuche).
-
Danach kann die Aufnahme beendet werden. (Markierter Button).
-
Der aufgezeichnete Test kann wieder abgespielt werden (markierter Button), wobei alle Aktionen im Browser stattfinden.
Selenium WebDriver
Der WebDriver stellt eine objektorientierte API zum Browser dar. WebDriver schickt Befehle direkt an den Browser über dessen eingebaute Automatisierungsschnittstellen. Für jede Programmiersprache kommen verschiedene Bindings zum Einsatz. Folgende Sprachen werden vom Hauptprojekt unterstützt[7] und verwenden Firefox:
- Java
- C#
- Ruby
- Python
Auch für mobile Plattformen (Android[8] und iOS[9]) gibt es WebDriver. Weitere Browserunterstützung (z.b. für Chrome, Opera) und WebDriver (z.B. für PHP oder Perl)[7] werden von der Community entwickelt und gepflegt.
Einfaches Beispiel
Auch in diesem Beispiel soll wieder mit einer Suchmaschine gesucht werden. Als Programmiersprache soll Python eingesetzt werden. Dazu muss der richige WebDriver installiert werden, Da sich dieser im Python Package Index befindet kann er mit pip install selenium installiert werden. Die Dokumentation hält auch Schritte für andere Programmiersprachen bereit. Jetzt steht ein Objekt bereit mit dessen Methoden man den Firefox steuern kann.
Quellen
- ↑ Durch Selenium unterstützte Betriebssysteme, abgerufen am 13.05.2012.
- ↑ Selenium Lizenz, abgerufen am 13.05.2012.
- ↑ Mitwirkende von Selenium, abgerufen am 13.05.2012.
- ↑ Kommerzielle Firmen die Selenium-Support anbieten, abgerufen am 17.05.2012.
- ↑ Selenium IDE Features, abgerufen am 17.05.2012.
- ↑ "Screenshot on Fail" v1.0 Selenium Plugin, abgerufen am 17.05.2012.
- ↑ 7,0 7,1 7,2 Selenium IDE Plugins Download, abgerufen am 17.05.2012.
- ↑ AndroidDriver, WebDriver für Android.
- ↑ IPhoneDriver, WebDriver für iOS.