Traditionell war es schwierig, Akzeptanztests in das Web zu integrieren. Mit der Kombination von Fitnesse und Selenium können Sie die Integration jetzt problemlos durchführen.
Selenium ist ein Softwaretest-Tool für Webanwendungen. Es kann auf allen Plattformen ausgeführt werden und verfügt über Client-Treiber für Python, Ruby, .NET, Perl, Java und PHP. FitNesse ist ein Tool für Akzeptanztests, mit dem Testfälle in englischer Sprache geschrieben werden können. Es wurde ursprünglich in Java geschrieben, ist jetzt aber auch in C++, Python, Ruby, Delphi und C# verfügbar. Installation von Selenium Laden Sie den Selenium RC-Server von der Selenium RC-Website herunter. Um den Server auszuführen, verwenden Sie den Befehl 'java -jar selenium-server.jar'. Dadurch wird der Selenium-Server auf Port 4444 ausgeführt. Der Port kann mit der Option -port während des Starts des Selenium-Servers geändert werden. Selenium Fixture-Klasse Sie müssen eine Klasse namens SeleniumFixture erstellen, die die DoFixture-Klasse erweitert, um die benutzerdefinierte Fixture zu erstellen.
public class SeleniumFixture extends DoFixture {
....
....
public boolean startBrowser() {
if (browser == null) {
browser = new DefaultSelenium("localhost", 4444, "*iexplore", "https://xebia.com/blog:8080/");
browser.start();
}
true zurückgeben;
}
Diese benutzerdefinierte Klasse erstellt eine Instanz von DefaultSelenium, einer Selenium-Schnittstellenreferenz. Als nächstes müssen Sie die Methoden von DefaultSelenium wie folgt freilegen.
public boolean isTextPresent(String text) {
return browser.isTextPresent(text);
}
Offenlegen von Klassenmethoden für fitnesse wiki
Sie können die oben genannten Methoden von fitnesse wiki wie folgt aufrufen.
|is text|put your text|present|
Dadurch wird das Selen mit Fitness verbunden.
Beispielcode
Nehmen wir ein Beispiel für die Integration von Selenium mit Fitnesse.
Im Folgenden finden Sie den Code eines Fitnesse-Testfalls, der die Funktionalität des Kontrollkästchens "Remember me" auf der Anmeldeseite überprüft. Sobald das Kontrollkästchen aktiviert ist, wird der Benutzername gespeichert, so dass bei der nächsten Anmeldung keine Eingabe des Benutzernamens mehr erforderlich ist
!|com.xebia.xtime.fitnesse.selenium.SeleniumFixture|
|start browser|*iexplore|
|go to url|https://xebia.com/blog:8080/xtime/|and wait|60000|
|write|ywoe|to text field|j_username|
|write|tomcat|to text field|j_password|
|click|rememberMe|
|click |//input[@name='login']|and wait|60000|
|click|link=Logout| and wait|60000|
|validate|ywoe|in field|j_username|
|write|tomcat|to text field|j_password|
|click |//input[@name='login']| and wait|60000|
|is text|Logged in as: Yuk Woe|present|
|is text|Time Sheet (Create / Update)|present|
Der obige Beispielcode verwendet Methoden der Klasse SeleniumFixture wie startBrowser, goToUrlAndWait, writeToTextField, click, clickAndWait, validateInField und isTextPresent.
Selenium Fixture Code des obigen Beispiels.
public class SeleniumFixture extends DoFixture {
...
...
...
public boolean startBrowser(String browserStartCommand) {
if (browser == null) {
browser = new DefaultSelenium("localhost", 4444, browserStartCommand, "https://xebia.com/blog:8080/");
browser.start();
}
true zurückgeben;
}
public boolean goToUrlAndWait(String url, String waitTime) {
browser.open(url);
browser.waitForPageToLoad(waitTime);
true zurückgeben;
}
public boolean writeToTextField(String text, String field) {
browser.type(feld, text);
true zurückgeben;
}
public boolean click(String link) {
browser.click(link);
true zurückgeben;
}
public boolean clickAndWait(String link, String waitTime) {
browser.click(link);
browser.waitForPageToLoad(waitTime);
true zurückgeben;
}
public boolean validateInField(String value, String field) {
String thisValue = browser.getValue(field);
if (thisValue.equals(value)) {
true zurückgeben;
} sonst {
return false;
}
}
public boolean isTextPresent(String text) {
return browser.isTextPresent(text);
}
}
Wenn Sie das Fitnessprogramm einbinden und ausführen, wird ein neuer Browser geöffnet, der in der startBrowser-Methode angegeben wird.
Fazit Wir haben darüber gesprochen, wie Fitnesse in Selenium integriert werden kann. Wir haben uns mit den Änderungen befasst, die vorgenommen werden müssen, um eine Java-Klasse zu erstellen, die das DefaultSelenium-Objekt umhüllt, und wir haben darüber gesprochen, wie die in der Java-Klasse erstellten Methoden der Fitnesse-Welt zugänglich gemacht werden. Zum Schluss haben wir ein echtes Beispiel genommen, um die Integration besser zu verstehen.
Verfasst von
Himanshu Gupta
Contact



