Der Zombie googelt
Das Testskript »gtest« (Listing 2) startet zunächst eine Firefox-Sitzung und öffnet darin die Google-Homepage. Dort gibt der Browser den String »schilli« ins Suchfeld ein und betätigt den Button »Google Search«. Die in »gtest« festgelegten Testfälle prüfen, ob die Suche erfolgreich war und ob in der Trefferliste der String »perlmeister« auftaucht. Die Ausgabe zeigt Abbildung 3.
01 #!/usr/bin/perl -w
02 use Test::WWW::Selenium;
03 use Test::More tests => 4;
04
05 my $url = "http://www.google.com";
06
07 my $sel = Test::WWW::Selenium->new(
08 host => "localhost",
09 port => 4444,
10 browser => "*firefox " .
11 "$ENV{FIREFOX_HOME}/firefox-bin",
12 browser_url => $url,
13 );
14
15 $sel->open_ok($url);
16
17 $sel->type_ok("q", "schilli",
18 "Type query");
19
20 $sel->click_ok(
21 '//input[@value="Google Search"]',
22 "Clicking Search");
23 $sel->wait_for_page_to_load(5000);
24
25 $sel->body_text_like(qr/perlmeister/,
26 "perlmeister found");
|

|
Abbildung 3: »gtest« startet einen Firefox-Browser, den das Skript fernsteuert und auf Google lenkt. Die Suchergebnisse analysiert es automatisch.
|
Damit die Methode »click()« weiß, welchen Button der Browser betätigen soll, nimmt sie normalerweise den Wert des »name«-Attributs des Buttons als Parameter entgegen. Alternativ bestimmt man das Klickziel über einen so genannten Element Locator und steuert das »<INPUT>«-Element eines Formulars über die Variable »value« an:
//input[@value="Google Search"]
Die Dokumentation von WWW::Selenium führt eine ausführliche Liste von Methoden auf, mit denen der Client den Selenium-Server und darüber den Browser fernsteuert. Selenium unterstützt die ganze Palette des Browser-Schnickschnacks, vom Öffnen mehrerer Popup-Fenster über das Auslösen von Javascript-Events bis zum Platzieren des Textcursors in Formelementen.
Abbildung 4 zeigt eine Firefox-Sitzung, die Selenium fernsteuert. In der oberen Hälfte stehen die per Javascript eingespeisten Bedien- und Kontrollelemente, unten ist die getestete Website zu sehen. Der Zombie-Browser verwendet die unveränderten Standardeinstellungen, deshalb ist die personalisierbare Toolbar leer und das Suchfenster ist auf Google voreingestellt, der Browser des Autors nutzt dagegen die Suchmaschine seines Arbeitgebers. Selenium legt zum Testen ein eigenes Firefox-Profil an und ignoriert somit die im Browser vorgenommenen Benutzereinstellungen.

|
Abbildung 4: Zum Testen legt Selenium ein eigenes Profil im Browser an und ignoriert die vom Benutzer vorgenommenen Einstellungen. Dann lässt es ihn eine Seite ansteuern, während in der oberen Fensterhälfte die Fernsteuerungskontrolle steht.
|
Ein prüfender Blick auf die Adressenzeile des Browsers zeigt, dass auch hier einiges von der Norm abweicht. Die dargestellte URL »http://www.google.com/selenium-server/...« jubelt Google einen Selenium-Server unter, der auf der Website des Suchgiganten natürlich nicht installiert ist: Die oben vorgestellten Testskripte kommunizieren nicht direkt mit dem Browser, sondern über die Selenium Remote Control als Mittelsmann.
Zwei in einem
Der Selenium-Server erfüllt zwei Funktionen zugleich. Fordert ein Testskript eine Internetseite an, leitet die Selenium-Fernsteuerung den Auftrag an den Browser weiter. Ihn hat Selenium aber so eingestellt, dass er nicht direkt mit dem Internet kommuniziert, sondern über einen Proxy. Diese Aufgabe übernimmt ebenfalls Selenium. So bekommt der Server mit, welche Daten der Browser aus dem Internet anfordert und zurückerhält, und kann den Verkehr zwischen beiden Parteien beliebig manipulieren.
Bittet die Selenium-Fernsteuerung den Browser, eine URL anzufordern, hängt sie an die Internetadresse Kontrollparameter und eine Session-ID an. Der Browser holt die angegebene Webseite anschließend über den Proxy. Dann erhält der Selenium-Server den Auftrag zurück, filtert die für ihn bestimmten Nachrichten heraus, kontaktiert den angegebenen Webserver und holt die Antwort ab. Diese ergänzt der Proxy um Javascript-Code, der im Browser Fernsteuerungsaktionen wie das Tippen von Text in ein Eingabefeld auslöst.
| Whitepaper |
|
Usage Landscape Enterprise Open Source Data Integration
Die Nachfrage nach Datenintegrationslösungen für Unternehmen ist zunehmend gestiegen und vor allem das Interesse an Open Source Technologien wird immer größer. Doch wie und von wem werden Open Source Datenintegrationslösungen genutzt und welches Nutzungsverhalten lässt sich daraus ableiten? Das vorliegende White Paper präsentiert die Erfahrungswerte von über 1000 Open Source Nutzern und liefert fundierte Antworten auf diese Fragen.
Download PDF (Registrierung erforderlich)
|
|
Daten Migration - Eine Publikation von Bloor Research
Datenmigrationsprojekte überschreiten häufig das Budget, neigen zu Verzögerung und werden unter Umständen komplett abgebrochen. Bloor Research ist eines der weltweit führenden IT-Forschungs-, Analyse- und Beratungsunternehmen und wird in dem vorliegenden White Paper die wichtigsten Aspekte dieser Problematik näher beleuchten. Ferner werden praktische Empfehlungen für erfolgreiche Migrationsprojekte gegeben, die Sie auf Ihr nächstes Projekt übertragen können.
Download PDF (Registrierung erforderlich)
|
Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links"
nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedrucken Fassung entsprechen.
|