3.5.2.3. Konfiguration von checkerberry web

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.

Checkerberry web-Konfiguration

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.

Web-Kontext

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.