Google webdriver – vytvorte si vlastného testovacieho robota, časť I.

Roman Hesteric  /  04. 06. 2008, 00:00

Google webdriver - v Jave testujeme webové aplikácie. Úvod, inštalácia, prvé spustenie.

Google webdriver – predstavenie

 

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ú.

 

Google webdriver – download/inštalácia

 

Zo stránky webdriver/downloads si stiahnite tieto zip súbory:   

  • webdriver-internet-explorer-r280.zip
  • webdriver-firefox-r280.zip
  • webdriver-support-r280.zip
  • webdriver-safari-r280.zip
  • webdriver-htmlunit-r280.zip
  • webdriver-common-r280.jar

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. 

  • Vo vývojovom prostredí pre Javu, ja preferujem Eclipse, vytvorte nový Java projekt.

 

  • Po úspešnom vytvorení nového projektu, postupne pridáme nový package [com.googlecode.webdriver.example].

 

  • Do classpath pridáme všetky dowloadnuté jar-súbory [Add External JARs…]

 

  • Do package budeme postupne pridávať jednotlivé testovacie triedy [FirstTest, Test1.java – Test6.java, Steps.java]

Google webdriver – prvé spustenie

 

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 google.com

        driver.get("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 together.sk

 

Nabudúce:

  • Google webdriver – Inštalácia firefox pluginu
  • Google webdriver – Testovací robot, využívajúci Firefox plugin
  • Google webdriver – Testovací robot, využívajúci Internet Explorer