V druhej časti som sľúbil, že sa podrobnejšie pozrieme na kódy v Jave, Groovy a že podrobnejšie popíšem postupy integrácie Selenia do Canoo WebTest.
Poďme teda pekne po poriadku. Selenium je možné stiahnuť z jeho domáceho webu.
Pre naše účely je potrebný download súborov (čísla verzií sa môžu v čase meniť):
- selenium-server-standalone-2.35.0.jar – server, ktorého beh je potrebný na spúštanie testov
- selenium-java-2.35.0.zip – potrebné jar súbory potrebné k písaniu testov
Selenium server spustíme príkazom:
Java – jar selenium-server-standalone-2.35.0.jar
Teraz poďme na testovacie kódy v ich jednotlivých modifikáciách [Java, Groovy, WebTest].
JAVA:
import java.net.MalformedURLException; import java.net.URL; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.remote.DesiredCapabilities; import org.openqa.selenium.remote.RemoteWebDriver; public class selenium { public static void main(String[] args) { DesiredCapabilities capability = DesiredCapabilities.firefox(); try { WebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capability); driver.get("http://www.priklady.eu"); WebElement element = driver.findElement(By.linkText("FYZIKA")); element.click(); System.out.println(driver.getTitle()); driver.close(); } catch (MalformedURLException e) { e.printStackTrace(); } } }
Tento kód postupne vykoná nasledujúce akcie:
- Otvorí Firefox
- Naviguje na stránku priklady.eu – driver.get(“http://www.priklady.eu”).
- Klikne na link „FYZIKA“ – element.click().
- Vypíše na konzolu titul stránky
- Zatvorí Firefox – driver.close().
Rovnaký kód v jazyku Groovy, v ktorom pribudol záverečný test na výskyt reťazca „fyziky“ v titulku stránky.
Groovy:
import java.net.MalformedURLException; import java.net.URL; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.remote.DesiredCapabilities; import org.openqa.selenium.remote.RemoteWebDriver; import com.canoo.webtest.engine.StepFailedException as SPE; class gselenium { static main(args) { DesiredCapabilities capability = DesiredCapabilities.firefox() try { println("Test started ... ") WebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capability) driver.get("http://www.priklady.eu") WebElement element = driver.findElement(By.linkText("FYZIKA")) element.click() String sTitle = driver.getTitle() driver.close(); println("Page Title is: " + sTitle) if (!sTitle.contains("fyziky")) { println("Test failed") throw new SPE("Problem found - test failed") } println("Test OK") } catch (MalformedURLException e) { println("Test failed") throw new SPE("Problem found - test failed") } } }
Pomocou triedy „StepFailedException” zo súboru webtest.jar som pripravil budúcu komunikáciu groovy kódu s Canoo WebTestom. Ak totiž potrebujeme oznámiť Canoo WebTestu, že test nedopadol dobre, a že teda nechceme, aby sa test vykonával ďalej, vyhodíme StepFailedException – čim zastavíme vykonávanie testu a zobrazíme výsledky testu so zlyhaním v kroku <groovy>.
V poslednej časti tejto série si ukážeme ako Groovy kód „zlepíme“ s testovacím scenárom v prostredí Canoo Webtest. Takto upravený skript spustíme v prostrediach Eclipse a Webtest.