Selenium – tretí z free nástrojov pre automatické testovanie webu

Roman Hesteric  /  30. 07. 2008, 07:40

Podrobnejší pohľad na open-source projekt Selenium. Predstavenie, inštalácia a použite.

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í:

 

  1. Server, ktorý dokáže automaticky spustiť a ukončiť podporované internetové prehliadače a použiť ich ako HTTP proxy pre requesty testovacieho klienta.
  2. 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

Neprehliadnite: