Roman Hesteric / 04. 06. 2008, 00:00
Google webdriver - v Jave testujeme webové aplikácie. Úvod, inštalácia, prvé spustenie.
Google webdriver je zatiaľ úplnou novinkou vo svete tvorby prostredí pre automatické testovanie. Ako sa dočítate na „home“ stránke tohto zaujímavého projektu, webdriver poskytuje jednoduché API na spoluprácu s reálnymi internetovými prehliadačmi na testovanie webových aplikácií. Umožňuje testovanie „heavy“ webových aplikácií, ktoré používajú javascript, AJAX, Active-X, ... Na druhej strane však poskytuje aj riešenie na testovanie jednoduchších webových aplikácií, pričom testovací robot nepoužíva priamo reálny internetový prehliadač. Robot, alebo testovací klient, browsuje „In memory“ – teda všetky testovacie kroky [request-response-check response] sa vykonávajú v pamäti testovacieho robota.
Celý projekt je napísaný a plne využíva Javu [minimálne Java 5]. Testovací klienti – roboti sú teda javovské triedy, ktoré pomocou web-driverov [HtmlUnitDriver, FireFoxDriver, InternetExplorerDriver, SafariDriver] „browsujú“ po testovaných weboch, pričom testujú ich funkcionalitu.
Na čo je to všetko vlastne dobré a k čomu by sme to potrebovali? Odpoveď na túto otázku nájdete okrem iného aj v sérii článkov o testovaní webových aplikácií použitím Canoo WebTest, pričom projekt Google webdriver spolu s projektom Canoo WebTest súvisí minimálne použitím HtmlUnit-u, ktorý tvorí základný stavebný kameň projektu Canoo WebTest. Myslím si však, že Goggle webdriver nie je konkurentom Canoo WebTestu, ale je to vynikajúci spôsob ako rozšíriť existujúce testovacie prostredia o nové možnosti, ktoré so sebou Google webdriver a Java-technológia prinášajú.
Zo stránky webdriver/downloads si stiahnite tieto zip súbory:
Po rozpakovaní stiahnutých zip-súborov vznikne inštalačný adresár [c:webdriver].
V čase písanie tohto článku boli k dispozícii skomplilované verzie „revision 280“. Aktuálne verzie "zdrojákov" sa však dajú získať na "source" záložke projektu.
Kedže od 6.6.2008 je na webe k dispozícii verzia r406, prikladám linky na pôvodnú verziu r280, s ktorou budú určite fungovať všetky príklady uvedené v článkoch o Google webtest.
Teraz postupne vytvoríme prvého testovacieho robota. Bude to niekoľko, na seba naväzujúcich krokov.
Základné predpoklady prvého spustenie testovacieho robota sme teda splnili. Teraz napíšeme testovací scenár, ktorý budú predstavovať riadky Java kódu. Ten uložíme ako triedu, ktorú nazveme napríklad „FirstTest.java“.
package com.googlecode.webdriver.example;
import com.googlecode.webdriver.By;
import com.googlecode.webdriver.WebDriver;
import com.googlecode.webdriver.WebElement;
import com.googlecode.webdriver.htmlunit.HtmlUnitDriver;
public class FirstTest {
public static void main(String[] args) {
// Nova instancia HtmlUnitDriver-a
WebDriver driver = new HtmlUnitDriver();
// ideme na www.google.com
driver.get("http://www.google.com");
// najdeme vstupne pole formulare, pomocou XPath
WebElement element =
driver.findElement(By.xpath("//input[@name = 'q']"));
// Zadame vyhladavane slovo
element.sendKeys("Cheese!");
// Submit form
element.submit();
// Kontrola response "title"
System.out.println("Page title is: " + driver.getTitle());
}
}
Testovacieho robota skompilujeme a spustíme.
Za predpokladu, že nepoužívate proxy [s použitím proxy servera sa mi tento príklad nepodarilo rozbehnúť], testovací robot/scenár dobehne a jeho výsledkom bude na konzole vypísaný „title“ - Google.
Aby vás uvedený príklad naozaj chytil, skúste si FirstTest pustiť v debug móde. Jednotlivé testovacie kroky môžete elegantne krokovať a prezerať premenné. Pre mňa to bol na prvýkrát pekný zážitok. Oveľa efektnejšie je však debugovanie robota, ktorý používa FirefoxWebDriver, alebo InternetExplorerWebDriver, pretože každý krok v Eclipse sa okamžite prejaví v okne internetového prehliadača. V ďalšom texte si ukážeme aj tieto možnosti Google webdriver-u.
Autor pracuje ako developer vo firme www.together.sk
Nabudúce:
Copyright © 2002 - 2013 inet.sk, s. r. o. | Všetky práva vyhradené | Neprešlo jazykovou úpravou | ISSN 1336-1899
Využívame kvalitný webhosting za rozumnú cenu od Inet.sk