Benutzer:Chrisma0: Unterschied zwischen den Versionen

Aus Wikiversity
Inhalt gelöscht Inhalt hinzugefügt
Chrisma0 (Diskussion | Beiträge)
Chrisma0 (Diskussion | Beiträge)
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

Die Selenium IDE

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

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.

Datei:Datei:Python selenium sample code.png
Python Beispiel Code. Mit Selenium wird eine Google-Suche nach "Cheese!" gestartet und der Titel der Webseite ausgegeben.

Quellen

  1. Durch Selenium unterstützte Betriebssysteme, abgerufen am 13.05.2012.
  2. Selenium Lizenz, abgerufen am 13.05.2012.
  3. Mitwirkende von Selenium, abgerufen am 13.05.2012.
  4. Kommerzielle Firmen die Selenium-Support anbieten, abgerufen am 17.05.2012.
  5. Selenium IDE Features, abgerufen am 17.05.2012.
  6. "Screenshot on Fail" v1.0 Selenium Plugin, abgerufen am 17.05.2012.
  7. 7,0 7,1 7,2 Selenium IDE Plugins Download, abgerufen am 17.05.2012.
  8. AndroidDriver, WebDriver für Android.
  9. IPhoneDriver, WebDriver für iOS.