Die Konfiguration von checkerberry web ist optional. Die
Grundeinstellungen sind so gewählt, dass in der Regel keine
Anpassungen erforderlich sind. Durch das Implementieren des Interfaces
WebConfiguration
und der Verwendung dieser Klasse
bei der Erzeugung der checkerberry web-Umgebung, kann die
Konfiguration angepasst werden. Wenn keine eigene Konfiguration
angegeben wird, wird die Klasse
DefaultWebConfiguration
verwendet. Die in diesem
Kapitel dargestellten Standard-Konfigurationen beziehen sich daher auf
diese Klasse.
In der checkerberry web-Konfiguration werden globale Einstellungen vorgenommen, die sich auf alle oder zumindest einen großen Anteil der Tests beziehen. Neben der Konfiguration steht mit dem Web-Kontext eine Möglichkeit bereit, Konfigurationen für einzelne Tests anzupassen. Für jeden Test wird ein neuer Web-Kontext erzeugt, sodass Änderungen an dem Kontext keine Auswirkungen auf folgende Tests nach sich ziehen.
Im Folgenden werden die Methoden der checkerberry web-Konfiguration beschrieben.
void
configure(RemoteControlConfiguration)
Innerhalb dieser Methode erfolgt die Konfiguration von
Selenium RC über die
RemoteControlConfiguration
. Alle
Einstellungen der RemoteControlConfiguration
können in dieser Methode angepasst werden. In der
Standard-Konfiguration werden folgende Einstellungen gesetzt:
Timeout in seconds: 2.000
Port: 41444
Trust all SSL certificates: true.
void configure(RemoteControl)
Innerhalb dieser Methode erfolgt die Konfiguration der Selenium-Fernsteuerung. In der Standard-Konfiguration werden folgende Einstellungen gesetzt:
Timeout: Für den Zugriff von Selenium auf HTML-Komponenten wird ein Timeout definiert, der die maximale Ausführungsdauer dieses Zugriffs festlegt. Dieser Timeout kann hier in Millisekunden angelegt werden (Default 2.000ms).
Speed: Dieser Wert gibt die Anzahl in Millisekunden an, die vor der Ausführung eines Selenium-Requests gewartet wird. Als Default ist dieser Wert auf 0 gesetzt. Eine Erhöhung des Werts führt zu einer längeren Laufzeit der Tests, was insbesondere zu Präsentations- oder Debug-Zwecken gewünscht sein kann. Dieser Wert hat bei der Verwendung von WebDriver keine Auswirkungen.
String getBrowserType()
Über diese Methode wird der Browser konfiguriert, der zum Testen verwendet werden soll. Die vollständige Liste der unterstützen Browser finden Sie in der FAQ auf der Selenium-Webseite unter [SeleniumRC FAQ, 2010]. Am häufigsten werden folgende Einstellungen verwendet:
*firefox
: Startet den Firefox-Browser
aus dem Standard-Installationsverzeichnis. Diese Einstellung ist
in checkerberry web als Default ausgewählt.
*iexplore
: Startet den Internet
Explorer aus dem Standard-Installationsverzeichnis.
*googlechrome
: Startet den
Google-Chrome-Browser aus dem
Standard-Installationsverzeichnis.
*custom
: Startet einen manuell
konfigurierten Browser. Bei der Angabe dieses Browser-Typs muss
zusätzlich ein Installationspfad angegeben werden z.B.
*custom C:\Program Files\Mozilla
Firefox\firefox.exe
. Checkerberry web startet dann
den entsprechenden Browser.
String getServerHost()
Diese Methode liefert den Namen oder die IP-Adresse des Rechners zurück, auf dem der HTTP-Proxy angesprochen werden soll. In der Standard-Konfiguration ist das „localhost“.
int getServerPort()
Diese Methode liefert den Port des HTTP-Proxies zurück. In der Standard-Konfiguration ist das 41444.
int getTimeout()
Diese Methode liefert den Timeout in Millisekunden zurück, der innerhalb von Selenium verwendet werden soll. In der Standard-Konfiguration ist das 2.000ms.
double
getScreensaverNonZeroBytesRatio()
Eine Anpassung dieser Methode ist in der Regel nicht erforderlich. Checkerberry web ermittelt anhand eines Screenshots, ob der Bildschirmschoner aktiv ist. In diesem Fall enthält der Screenshot vornehmlich Null-Bytes. Über diese Methode kann das Verhältnis von nicht Null-Bytes zur Gesamtanzahl der Bytes eingestellt werden. Die Standard-Konfiguration ist 0,05, d.h. wenn mindestens 5% der Bytes keine Null-Bytes sind, handelt es sich um einen „echten“ Screenshot. Umgekehrt bedeutet dies, dass der Screenshot einen schwarzen Bildschirm aufgenommen hat, wenn über 95% der Bytes Null-Bytes sind.
int
getScreensaverDetectionInterval()
Die Ermittlung eines aktiven Bildschirmschoners ist zeitaufwendig. Aus diesem Grund kann das Ergebnis der Überprüfung für einige Zeit gespeichert und wiederverwendet werden. Über diese Methode wird definiert, wie lange die ermittelte Information wiederverwendet werden kann. Eine erneute Auswertung des Screenshots wie oben beschrieben ist dann nicht erforderlich. Das Intervall wird in Millisekunden angegeben. Der Standardwert ist 5.000ms.
NewBrowserInstancePolicy
getNewBrowserInstancePolicy()
Durch die Methode
getNewBrowserInstancePolicy()
kann das Verfahren
für die Ermittlung, wann eine neue Browser-Instanz zu verwenden ist,
geändert werden (siehe Abschnitt 3.4.1, „Wiederverwendung von Browser-Instanzen“).
String getTestUrl()
Die Test-URL definiert, welche URL innerhalb der Setup-Phase
in der Browser-Instanz geladen werden soll. Wenn der Großteil der
Tests die gleiche Test-URL verwenden, kann diese in der
Konfiguration angegeben werden. Eine weitere Möglichkeit besteht in
der Angabe der Test-URL über die Annotation
@TestUrl
(siehe Abschnitt 3.4.2, „Festlegen der Test-Url“).
String getLogoutUrl()
Bei der Wiederverwendung von Browser-Instanzen muss die letzte Session des Browsers gelöscht werden, damit der vorherige Test keine Auswirkungen auf einen folgenden Test hat. Anderenfalls kann es z.B. vorkommen, dass ein Test die Anzeige einer Login-Seite erwartet, die jedoch nicht dargestellt wird, da der vorherige Test bereits ein Login durchgeführt hat. Wird eine Browser-Instanz wiederverwendet, löscht checkerberry web alle Session-Cookies. Es kann jedoch zusätzlich erforderlich sein, dass eine URL aufgerufen werden muss, um die Session im Webserver zu beenden. Zu diesem Zweck kann eine Logout-URL definiert werden, die vor einer Wiederverwendung der Browser-Instanz aufgerufen wird.
WebContext
createContext(TestConnector)
Der Web-Kontext enthält Informationen zur Durchführung der
aktuellen Testmethode. Für jede Testmethode wird ein neuer Kontext
über die checkerberry web-Konfiguration erzeugt. Dieses Vorgehen
ermöglicht die Verwendung projektspezifischer Kontexte, die weitere
Informationen beinhalten. Als Standard wird die Klasse
DefaultWebContext
als Kontext
verwendet.
Der Web-Kontext beinhaltet Informationen, die lediglich für
die Dauer einer Testmethode gültig sind. Im Folgenden werden die
Methoden des Interfaces WebContext
beschrieben.
TestConnector getTestConnector()
Diese Methode liefert den aktuellen Test-Connector zurück. Der
Test-Connector definiert zum einen, welches Testframework verwendet
wird. Diese Information ist bei der Implementierung eines konkreten
Tests jedoch bereits bekannt. Zum anderen stellt der Test-Connector
den Namen der aktuellen Testklasse und –methode über die Methoden
getClassName
und
getMethodName
bereit.
WebConfiguration
getConfiguration()
Diese Methode liefert die aktuelle checkerberry web-Konfiguration zurück. Der Web-Kontext ermöglicht das Überschreiben von Einstellungen aus der checkerberry web-Konfiguration. Wenn ein Wert im Kontext nicht überschrieben wurde, wird der entsprechende Wert aus der Konfiguration verwendet.
void setTestUrl(String)
und
String getTestUrl()
Diese Methoden sind Setter und Getter für die zu verwendende Test-URL. Es ist somit möglich die Test-URL für eine Testklasse oder –methode anzupassen.
void setLogoutUrl(String)
und
String getLogoutUrl()
Diese Methoden sind Setter und Getter für die zu verwendende Logout-URL. Es ist somit möglich die Logout-URL für eine Testklasse oder –methode anzupassen.
void
setNewBrowserInstancePolicy(NewBrowserInstancePolicy)
und NewBrowserInstancePolicy
getNewBrowserInstancePolicy()
Diese Methode sind Setter und Getter für das Verfahren zur Ermittlung, für welche Tests eine neue Browser-Instanz verwendet werden muss. Das Verfahren kann für einzelne Testklassen über den Kontext angepasst werden. Eine detaillierte Beschreibung des Verfahrens ist im Rahmen der checkerberry web-Konfiguration im vorherigen Abschnitt vorhanden.