Selenium - tretí open-source projekt na automatické testovanie webových aplikácií
Vo svojom predchádzajúcom článku „Testovanie webových aplikácií použitím Canoo WebTest“ som v časti „Štyri vzory testovania – Capture/Replay“ spomenul aj projekt Selenium. Selenium, ako plug-in do internetového prehliadača Mozilla Firefox je testovací nástroj pre webové aplikácie využívajúci GUI [Graphic User Interface] internetových prehliadačov. Testy sa spúšťajú priamo v prehliadači, presne tak ako by to robil používateľ testovaného webu. Umožňuje uloženie testovacích krokov do súboru a jeho opätovné spúšťanie. Je to teda typický príklad testovacieho nástroja „Capture/Replay“.
Na konci kapitoly som spomenul že významnou časťou projektu Selenium je „Selenium Remote Control (RC)“- testovacia nadstavba pomocou ktorej je možné písanie automatických testov vo vyšších programovacích jazykoch ako Java, PHP, Python, Perl, C# pre .NET. A práve použitie tejto nadstavby v jazyku Java bude obsahom tohto článku.
Prečo je v nadpise tohto článku „tretí z free nástrojov ...“? Pretože tým druhým, aspoň z môjho pohľadu, je Google webdriver, o ktorom som už písal na tomto webe: „Google webdriver – vytvorte si vlastného testovacieho robota“.
Selenium - IDE
Základnou časťou testovacieho nástroja je Selenium IDE [Integrated Development Environment]. Používa sa ako plug-in [zásuvný modul] do prehliadača Mozilla Firefox. Umožňuje zachytávanie akcií používateľa-testera webovej aplikácie. Zachytáva akcie vykonávané počas nahrávania testu. Ide teda o klikanie na aktívne HTML prvky a vypĺňanie webových formulárov. Postupnosť krokov sa uloží do súboru, ktorý slúži neskôr ako vstupný súbor pri opakovaní testov.

Ako je vidno z obrázka formát súboru je voliteľný. HTML, Java, C#, Perl, PHP, Python, Ruby - je na vás ktorý si vyberiete.

Selenium - Remote Control [RC]
Na „home“ stránke projektu sa dozvedáme, že Selenium Remote Control je testovací nástroj pre webové aplikácie, ktorý umožňuje písanie testovacích krokov vo vyšších programovacích jazykoch využitím prehliadačov podporujúcich Javascript.
Skladá sa z dvoch častí:
- Server, ktorý dokáže automaticky spustiť a ukončiť podporované internetové prehliadače a použiť ich ako HTTP proxy pre requesty testovacieho klienta.
- Klientské knižnice pre testerom preferovaný vyšší programovací jazyk. V tomto prípade to bude Java.
Selenium – Inštalácia, prvé spustenie
Z „downoad“ sekcie stiahneme poslednú stabilnú verziu [v čase písania článku Version 0.9.2]. Po rozzipovaní donwloadnutého súboru vznikne inštalačný adresár.

Ako som však už spomenul, ako klienta použijeme knižnice pre Javu, hoci k dispozícii sú aj iné jazyky.

Ako vidíte z obrázka verzia 0.9.2 poskytuje podporu pre:
- .NET
- Java
- Perl
- PHP
- Python
- Ruby
Keďže je však celý tento článok zaradený v sekcii Java – budú všetky ukážky v ďalšom texte v jazyku Java.
Teraz postupne vytvoríme prvého testovacieho robota. Bude to niekoľko, na seba nadväzujúcich krokov.
- Vo vývojovom prostredí pre Javu, napríklad Eclipse, vytvorte nový Java projekt.

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

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

- Do package budeme postupne pridávať jednotlivé testovacie triedy

Teraz napíšeme testovací scenár, ktorý budú predstavovať riadky kódu v jazyku Java. V skutočnosti ho však nebudeme priamo písať, ale využijeme na to Seleniu IDE. Ten nahrá naše akcie na testovanom webe a tie následne skopírujeme a vložíme do súboru, ktorý uložíme ako java triedu „TPCZTest.java“.
package com.example.tests;
import com.thoughtworks.selenium.*;
import junit.framework.*;
public class TPCZTest extends TestCase {
private Selenium browser;
public void setUp() {
browser = new DefaultSelenium("localhost",
4444,
"*chrome",
"http://1.20.21.5");
browser.start();
}
public void testTP() {
browser.open("http://1.20.21.5");
browser.click("//input[@type='image']");
browser.waitForPageToLoad("50000");
browser.click("formparam_cartype_next");
browser.waitForPageToLoad("50000");
browser.type("formparam_ccm_personal_ccm", "1400");
browser.type("formparam_car_power1", "80");
browser.type("formparam_car_kg", "1500");
browser.type("formparam_production_year", "2000");
browser.select("formparam_use_kind", "value=1");
browser.select("formparam_insurance_type", "value=1");
browser.type("formparam_data2_zip", "11000");
browser.type("formparam_dob_day", "01");
browser.type("formparam_dob_month", "01");
browser.type("formparam_dob_year", "1967");
browser.type("formparam_bonus_malus", "90");
browser.type("formparam_crash", "0");
browser.click("formparam_data2_back");
browser.waitForPageToLoad("50000");
browser.click("//img");
browser.waitForPageToLoad("50000");
}
public void tearDown() {
browser.stop();
}
}
Pred prvým spustením testovacieho klienta je potrebné spustiť Selenium RC Server.
Prejdeme do adresára „c:selenium-remote-control-0.9.2selenium-server-0.9.2“, kde v príkazovom riadku zadáme:
java -jar selenium-server.jar
Úspešné spustenie je zobrazené na konzole s bežiacim Selenium RC serverom.

Testovacieho klienta skompilujeme a spustíme ako Run As -> JUnit Test.

Na obrázku je vidieť priebeh testu. Prostredie Eclipse v ktorom je spustený testovací klient. Selenium server – konzola servera a Mozilla Firefox- ktorú využíva testovací klient na podporu Javascriptu a vizualizáciu testu.

Autor pracuje ako developer vo firme www.together.sk