Automatizované testovanie pomocou nástroja Selenium: Všetko, čo potrebuješ vedieť

V dnešnej digitálnej spoločnosti, kde softvérové aplikácie ovládajú náš každodenný život, kvalita a spoľahlivosť týchto aplikácií sa stávajú kľúčovými faktormi pre úspech. Testovanie softvéru, často chápané ako neoddeliteľná súčasť vývojového cyklu (Software Development Life Cycle – STLC), je postup, ktorý zabezpečuje kvalitu a stabilitu softvérových aplikácií.

Cieľom testovania softvéru je nájsť a opraviť chyby v softvéri, aby sa zabezpečilo, že spĺňa svoje požiadavky a očakávania používateľov. Avšak softvérové testovanie nie je len o hľadaní chýb. Ide o systematický prístup k overeniu všetkých aspektov softvéru, od funkčnosti a výkonu, až po bezpečnosť a užívateľskú skúsenosť.

Prečo je automatizácia testovania softvéru dôležitá

S narastajúcou produkciou webových prehliadačov stúpa aj potreba ich testovania pred uvedením finálneho produktu na trh. IT testeri sa snažia zachytiť všetky chyby, ktoré weby majú a následne ich odstrániť. Aj pri najväčšej snahe pri manuálnom testovaní softvéru sa stáva, že konečný produkt zostane s chybou alebo nie je schopný splniť požiadavky jeho používateľov. Najlepším spôsobom, ako sa týmto problémom vyhnúť a ako zvýšiť efektivitu testovania je zaviesť automatizované testovanie softvéru.

Výhody automatizovaného testovania

  • Rýchlosť a efektivita

Jedným z hlavných dôvodov, prečo je automatizácia testovania softvéru dôležitá, je zvýšenie efektivity a rýchlosti testovacieho procesu. Manuálne testovanie môže byť zdĺhavé a náročné, a môže sa stať obmedzeným, pokiaľ ide o pokrytie rôznych testovacích scenárov. Automatizované testy však môžu byť spúšťané rýchlo a opakovateľne, čím zrýchľujú testovací cyklus a umožňujú testovať širšie spektrum funkcií.

  • Opakovateľnosť a konzistentnosť

Automatizované testy sú konzistentné a opakovateľné. To znamená, že testovací tím nemusí mať obavy z ľudských chýb alebo odchýlok v testovaní. Každý test je vykonaný presne podľa preddefinovaných scenárov, čo vedie k spoľahlivým výsledkom. Táto konzistentnosť je neoceniteľná, pretože umožňuje odhaliť chyby a problémy v softvéri, ktoré by mohli byť inak prehliadané.

  • Široké pokrytie

Automatizované testovanie umožňuje testovať rôzne aspekty softvéru, vrátane funkčnosti, výkonu, bezpečnosti a užívateľskej skúsenosti. To zabezpečuje, že softvér je dôkladne testovaný vo všetkých dôležitých oblastiach a je pripravený na všetky možné scenáre použitia.

  • Regresné testovanie

Pri každej zmene v softvéri, ktorý sa často sa mení a vylepšuje, je potrebné vykonať regresné testovanie, aby sa zabezpečilo, že nové zmeny neporušili existujúcu funkcionalitu. Manuálne regresné testovanie by bolo časovo náročné a náchylné na chyby, ale automatizácia umožňuje rýchle a presné overenie, či nové zmeny neporušujú existujúci kód.

  • Zníženie nákladov

Hoci investícia do automatizácie testovania môže zdať na začiatku nákladná, dlhodobý pohľad ukazuje, že automatizácia môže výrazne znížiť náklady na testovanie. Menšia potreba manuálnych testerov a možnosť testovať efektívnejšie znamená, že spoločnosti môžu ušetriť čas a zdroje.

Nástroje na automatizované testovanie

Na automatizáciu testovania vieme použiť rôzne nástroje, pričom výber záleží od našich požiadaviek. Najznámejšie nástroje pre automatizáciu softvéru sú:

My si teraz popíšeme prvý v zozname a tým je Selenium.

Čo je Selenium?

Selenium je open-source framework, ktorý sa používa na automatizované testovanie webových aplikácií. Selenium podporuje širokú škálu prehliadačov a operačných systémov, čo ho robí flexibilným a univerzálnym nástrojom. Vyvinul ho Jason Huggins v roku 2004 ako interný nástroj pre globálnu technologickú spoločnosť Thoughtworks, dnes je to obľúbená pomôcka pre vývojárov aplikácií aj testerov softvérov po celom svete.

Výhody Selenium:

  • Oslobodzuje od manuálneho testovania a minimalizuje chyby ľudského faktora.
  • Poskytuje rozsiahle testovacie pokrytie.
  • Dokáže refaktorovať a znova použiť komplexný testovací skript zakaždým, keď pribudne nová funkcia.
  • Automatizuje opakované testovanie softvéru.
  • Je neoddeliteľnou súčasťou agilného vývoja.
  • Podporuje rôzne programovacie jazyky, napríklad Java, Python, Ruby, C#, Pearl, PHP a iné.
  • Testovacie skripty Selenium môžu byť naprogramované v ktoromkoľvek z podporovaných programovacích jazykov a spustené vo väčšine moderných webových prehliadačov, ako Google Chrome, Mozilla Firefox, Explorer alebo Safari.

Nevýhody Selenium:

  • Selenium môže byť komplexné na konfiguráciu a použitie.
  • Automatizované testy je potrebné pravidelne udržiavať, aby boli v súlade s zmenami v aplikácií.
  • Nepodporuje testovanie automatizácie pre desktopové aplikácie.
Selenium test oslobodzuje od manuálneho testovania, čo je výhoda pri práci testera
Testovacie skripty Selenium môžu byť kódované v rôznych programovacích jazykoch.

Aké nástroje na testovanie automatizácie Selenium poznáme?

Selenium pozostáva zo skupiny nástrojov, ktoré uľahčujú proces automatizovaného testovania softvéru. Sú nimi Selenium IDE, Selenium RC, Selenium WebDriver a Selenium Grid. Ich jednotlivé aspekty a výhody si predstavíme nižšie.

Selenium IDE

Integrované vývojové prostredie Selenium poskytuje funkciu nahrávania a prehrávania rôznych testovacích skriptov a umožňuje Selenium testerovi exportovať zaznamenané skripty v mnohých jazykoch, ako napríklad HTML, Java, Python, Ruby a iné. Tieto skripty môže následne použiť v ďalších z nástrojov Selenium RC alebo WebDriver. Je dostupný ako rozšírenie pre prehliadače Chrome, Firefox a Edge.

Selenium RC (Remote Control)

Tento nástroj umožňoval Selenium IT testerovi písať automatizované testy používateľského rozhrania webových aplikácií programovacím jazykom, ktorý je podporovaný.

Selenium RC (Remote Control) je starší framework pre automatizované testovanie webových aplikácií. Už sa neudržuje, ale stále sa používa pre niektoré legacy aplikácie.

Selenium RC fungovalo tak, že spustilo server, ktorý komunikoval s prehliadačom prostredníctvom HTTP protokolu. Selenium RC server prijímal príkazy od testovacieho nástroja a potom ich posielal do prehliadača. Selenium RC podporovalo širokú škálu prehliadačov a operačných systémov. Bolo tiež veľmi flexibilné a umožňovalo používateľom písať testy v rôznych programovacích jazykoch.

V roku 2010 bol projekt Selenium RC ukončený a nahradený projektom Selenium WebDriver.

Selenium WebDriver

Nástupcom Selenium RC je práve nástroj Selenium WebDriver, ktorý poskytuje programovacie rozhranie na vytváranie a spúšťanie testovacích prípadov. Funguje oveľa rýchlejšie ako jeho predchodca, pretože uskutočňuje priame spojenia s webovými prehliadačmi.

Selenium WebDriver funguje tak, že simuluje interakciu používateľa s webovou aplikáciou. Programátori môžu použiť Selenium WebDriver na ovládanie prehliadača a vykonávanie akcií, ako je klikanie na tlačidlá, zadávanie textu a výber položiek zo zoznamov.

Selenium Grid

IT Tester Selenium dokáže pomocou Selenium Grid súčasne spúšťať testy na rôznych počítačoch pomocou rozličných prehliadačov a operačných systémov. Výsledkom je efektívne paralelné testovanie softvérov za krátky čas.

Selenium Grid pozostáva z nasledujúcich komponentov:

  • Hub: Hub je centrálny komponent Selenium Grid, ktorý prijíma požiadavky od testovacích nástrojov a distribuuje ich do uzlov.
  • Node: Node(uzol) je počítač, ktorý spúšťa testy. Uzly môžu byť rôzne typy zariadení, ako sú počítače, tablety a smartfóny.

Benefity automatizovaného testovania pomocou nástroja Selenium

Na trhu existuje niekoľko nástrojov na automatizované testovanie softvérov. Každý z nich prináša určité výsledky a má isté výhody aj nevýhody. Prečo by si si mal ako tester softwaru vybrať práve Selenium? 

1. Selenium je bezplatný open-source nástroj

Jednou z mnohých výhod nástroja Selenium je jeho dostupnosť s otvoreným zdrojom. Je verejne dostupný a poskytovaný zadarmo. Selenium sa stal najspoľahlivejším nástrojom na automatizáciu testovania vďaka jednoduchému generovaniu testovacích skriptov na overenie funkčnosti.

2. Podporuje niekoľko programovacích jazykov, prehliadačov aj operačných systémov

Nástroj Selenium poskytuje jazykovú a rámcovú podporu všetkých najpoužívanejších programovacích jazykov, ako Java, Python, JavaScript, C#, Ruby alebo Perl, viacerých prehliadačov, napríklad Chrome, Firefox, Safari, Internet Explorer, Opera a Edge a v neposlednom rade zabezpečuje podporu naprieč rôznymi operačnými systémami, ako sú Windows, Linux, Mac OS, UNIX atď. Pri iných nástrojoch na automatizované testovanie softvéru nie sú tieto služby samozrejmosťou.

3. Neustále sa aktualizuje, zaberá menej miesta a ľahko sa používa

Keďže komunita nástroja Selenium rastie, poskytuje časté aktualizácie, ktoré sú ľahko dostupné. Okrem toho vydáva zrozumiteľný a jednoduchý Selenium tutorial na ich používanie. Ak by sme porovnali Selenium s inými nástrojmi zameranými na automatizované testovanie, tak zistíme, že je hardvérovo nenáročný.

4. Selenium predstavuje flexibilný a efektívny nástroj

Hlavným benefitom automatizovaného testovania s nástrojom Selenium je jeho efektívne využitie a flexibilita. Vďaka vysokej flexibilite a neustálemu vývoju funkcií Selenium rýchlo a efektívne pomáha vývojárom a IT testerom meniť potrebné kódy na webových stránkach. Taktiež identifikuje duplicitu, minimalizuje komplikácie a zlepšuje údržbu pri vývoji aplikácií. S pomocou Selenium Grid môžeš vykonávať viacero testov paralelne, čím sa skráti čas samotného testovania. 

Selenium je efektívny nástroj na testovanie softvéru
Nástroj Selenium zaberá na hardvéri počítača menej miesta ako iné nástroje na automatizované testovanie.Selenium poskytuje jazykovú podporu, podporu rôznych prehliadačov aj operačných systémov.

Najobľúbenejšie programovacie jazyky Selenium Java a Selenium Python

Programovací jazyk umožňuje IT testerovi zadávať inštrukcie programovému nástroju spôsobom, ktorému rozumie. Existuje ich naozaj veľa, ale tak, ako je v ľudskej reči najpoužívanejšia angličtina alebo nemčina, aj v programovaní existujú preferované jazyky. Medzi ne môžeme zaradiť programovacie jazyky Java, C# a Python.

Programovací jazyk Selenium Java

Väčšina profesionálnych Selenium IT Testerov používa na testovanie webových prehliadačov programovací jazyk Selenium Java. Jedným z dôvodov je, že Java má neustále sa rozrastajúcu sieť aktívnych vývojárov softvéru, ktorí nepretržite prispievajú k tvorbe testovacích prípadov. Ďalším z dôvodov je poskytovanie rýchlejšej manipulácie ako pri iných programovacích jazykoch, čím sa opäť šetria čas i námaha IT testerov.

Programovací jazyk Selenium Python

Programovací jazyk Python predstavuje open source programovací jazyk a poskytuje množstvo dátových štruktúr na vysokej úrovni. Je pomerne jednoduchý na používanie a podobne ako Selenium Java, aj on sa teší veľkej obľube u IT Testerov. Nástroj Selenium Python je tiež veľmi užitočný na testovanie automatizácie, pretože podporuje viacero programovacích vzorcov. V neposlednom rade posiela štandardné príkazy do rôznych prehliadačov bez ohľadu na dizajn prehliadača, s čím majú niektoré programovacie jazyky problém.

Selenium tutorial – ako začať s automatizovaným testovaním pomocou Selenium?

Chceš začať pracovať ako Selenium IT Tester? Potom si určite prezri tento návod na spustenie. Najskôr si musíš nainštalovať potrebné komponenty. Selenium je dostupné pre Windows, macOS a Linux.

Na inštaláciu a spustenie Selenium potrebuješ tieto komponenty:

  • Java: Selenium WebDriver je napísaný v jazyku Java, takže je potrebné mať nainštalovanú Javu. Java je dostupná pre Windows, macOS a Linux. Môžeš si ju stiahnuť tu.
  • Selenium WebDriver: Selenium WebDriver je API, ktoré umožňuje programátorom písať testy webových aplikácií. Selenium WebDriver je dostupný pre Windows, macOS a Linux. Stiahneš si ho tu .
  • Testovací framework: Testovací framework je nástroj, ktorý ti pomôže písať a spúšťať testy. Existuje mnoho rôznych testovacích frameworkov, ktoré podporujú Selenium WebDriver, ako je Selenium IDE, JUnit, TestNG a Cucumber. Link na stiahnutie Selenium IDE je tu.

Po inštalácii komponentov môžeš začať písať testy. Selenium IDE je dobrým miestom na začiatok, pretože ti umožňuje nahrávať a prehrávať testy bez toho, aby si musel písať kód.

Ak chceš písať testy v programovacom jazyku, môžeš použiť aj API Selenium WebDriver. Existuje mnoho zdrojov, ktoré ti pomôžu začať s automatizovaným testovaním pomocou Selenium, vrátane oficiálnej dokumentácie Selenium a online kurzov napríklad z tejto stránky.

Selenium testing – príklad jednoduchého testu

Tento test otvorí webovú stránku Google, nájde vyhľadávacie pole a zadá doň text „Selenium“. Potom test klikne na tlačidlo Hľadať a skontroluje, či je text „Selenium“ v názve stránky.

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class PrvyTest{

    public static void main(String[] args) {
        // Nastavenie prehliadača
        System.setProperty("webdriver.chrome.driver", "/cesta/ku/chromedriveru");

        // Vytvorí inštanciu prehliadača
        WebDriver driver = new ChromeDriver();

        // Otvorí webovú stránku Google
        driver.get("https://www.google.com/");

        // Nájde prvok
        WebElement searchBar = driver.findElement(By.name("názov prvku"));

        // Zadá do vyhľadávacieho poľa text
        searchBar.sendKeys("Selenium");

        // Klikne na tlačidlo Submit(Hľadať)
        searchBar.submit();

String ocakavanyNazov = "Selenium";
String aktualnyNazov = "";

        // Skontroluje, či je text "Selenium" v názve stránky
        String title = driver.getTitle();
if (aktualnyNazov.contentEquals(ocakavanyNazov)){
      	  System.out.println(title);
                System.out.println("Test prešiel!");
            } else {
                System.out.println("Test neprešiel!");
            }

        // Zavrie prehľadávač
        driver.quit();
    }
} 

Selenium vs. Cypress

  • Flexibilita: Selenium je flexibilnejší ako Cypress. Podporuje širokú škálu prehliadačov a operačných systémov a môže byť použitý na testovanie širokej škály webových aplikácií. Cypress podporuje iba prehliadač Chrome.
  • Rýchlosť: Cypress je rýchlejší ako Selenium. Cypress je navrhnutý tak, aby bol čo najrýchlejší, zatiaľ čo Selenium je navrhnutý tak, aby bol čo najviac flexibilný.
  • Ľahké použitie: Cypress je ľahšie použiteľný ako Selenium. Cypress má jednoduchší API a je navrhnutý tak, aby bol ľahko pochopiteľný aj pre začiatočníkov. Selenium má komplexnejší API, ktorý môže byť ťažšie pochopiť a používať.
  • Podpora pre moderné webové frameworky: Cypress je navrhnutý špeciálne pre testovanie webových aplikácií vytvorených pomocou moderných webových frameworkov. Cypress má funkcie, ktoré sú špecifické pre tieto frameworky, ako je napríklad podpora kódu React. Selenium nie je špeciálne navrhnutý pre testovanie webových aplikácií vytvorených pomocou moderných webových frameworkov.

Selenium vs Robot framework

  • Flexibilita: Selenium je flexibilnejší ako Robot Framework. Selenium podporuje širokú škálu prehliadačov a operačných systémov, zatiaľ čo Robot Framework podporuje iba aplikácie a technológie, ktoré podporujú jeho API.
  • Rýchlosť: Selenium je rýchlejší ako Robot Framework. Selenium je navrhnutý tak, aby bol čo najrýchlejší, zatiaľ čo Robot Framework nie je tak rýchly.
  • Ľahké použitie: Robot Framework je ľahšie použiteľný ako Selenium. Robot Framework má jednoduchšiu syntax a je navrhnutý tak, aby bol ľahko pochopiteľný aj pre začiatočníkov. Selenium má komplexnejšiu API, ktorú môže byť ťažšie pochopiť a používať.
  • Podpora pre rôzne aplikácie a technológie: Robot Framework je flexibilnejší ako Selenium. Robot Framework podporuje širokú škálu aplikácií a technológií, zatiaľ čo Selenium je obmedzený na webové aplikácie.

Selenium vs Appium

Ak potrebujete framework na testovanie webových aplikácií, potom je Selenium dobrou voľbou. Ak potrebujete framework na testovanie mobilných aplikácií, potom je Appium dobrou voľbou.

  • Cieľové aplikácie: Selenium je určený na testovanie webových aplikácií, zatiaľ čo Appium je určený na testovanie mobilných aplikácií.
  • Podpora pre platformy: Selenium podporuje iba webové prehliadače, zatiaľ čo Appium podporuje Android, iOS a Windows.
  • Podpora pre programovací jazyky: Selenium podporuje širokú škálu programovacích jazykov, zatiaľ čo Appium podporuje rovnaké programovací jazyky ako Selenium.
  • Flexibilita: Selenium je flexibilnejší ako Appium, pretože podporuje širokú škálu prehliadačov a operačných systémov.
  • Rýchlosť: Selenium je rýchlejší ako Appium.

Selenium vs TestNG

  • Cieľové aplikácie: Selenium je určený na testovanie webových aplikácií, zatiaľ čo TestNG je určený na testovanie širokej škály aplikácií.
  • Podpora pre platformy: Selenium podporuje iba webové prehliadače, zatiaľ čo TestNG podporuje webové prehliadače, desktopové aplikácie a mobilné aplikácie.
  • Podpora pre programovací jazyky: Selenium podporuje širokú škálu programovacích jazykov, TestNG podporuje rovnaké programovací jazyky ako Selenium.
  • Flexibilita: Selenium je flexibilnejší ako TestNG, pokiaľ ide o platformy.
  • Rýchlosť: Selenium je rýchlejší ako TestNG.
  • Ľahké použitie: TestNG je ľahšie použiteľný ako Selenium.
  • Funkcie testovania: TestNG je flexibilnejší ako Selenium, pokiaľ ide o funkcie testovania.

Selenium vs Cucumber

  • Cieľové aplikácie: Selenium je určený na testovanie webových aplikácií, zatiaľ čo Cucumber je určený na testovanie širokej škály aplikácií.
  • Podpora pre platformy: Selenium podporuje iba webové prehliadače, zatiaľ čo Cucumber podporuje webové prehliadače, desktopové aplikácie a mobilné aplikácie.
  • Podpora pre programovací jazyky: Selenium podporuje širokú škálu programovacích jazykov  a to isté aj Cucumber.
  • Flexibilita: Selenium je flexibilnejší ako Cucumber, pokiaľ ide o platformy.
  • Rýchlosť: Selenium je rýchlejší ako Cucumber.
  • Ľahké použitie: Cucumber je ľahšie použiteľný ako Selenium.
  • Funkcie testovania: Cucumber je flexibilnejší ako Selenium, pokiaľ ide o funkcie testovania.

Playwright vs Selenium

  • Cieľové aplikácie: Selenium a Playwright sú oba určené na testovanie webových aplikácií.
  • Podpora pre platformy: Selenium aj Playwright podporujú iba webové prehliadače.
  • Podpora pre programovací jazyky: Selenium aj Playwright podporujú širokú škálu programovacích jazykov.
  • Flexibilita: Selenium je flexibilnejší ako Playwright.
  • Rýchlosť: Playwright je rýchlejší ako Selenium.
  • Ľahké použitie: Playwright je ľahšie použiteľný ako Selenium.

Katalon vs Selenium

  • Cieľové aplikácie: Katalon podporuje širokú škálu aplikácií a technológií, zatiaľ čo Selenium síce podporuje širokú škálu aplikácií a technológií, ale nepodporuje testovanie desktopových aplikácií.
  • Podpora pre platformy: Katalon podporuje webové prehliadače, mobilné aplikácie, API a desktopové aplikácie, zatiaľ čo Selenium podporuje iba webové prehliadače.
  • Podpora pre programovací jazyky: Katalon podporuje širokú škálu programovacích jazykov, Selenium tiež.
  • Flexibilita: Katalon je menej flexibilný ako Selenium, pokiaľ ide o funkcie testovania.
  • Rýchlosť: Katalon je rýchlejší ako Selenium.
  • Ľahké použitie: Katalon je ľahšie použiteľný ako Selenium.
  • Cena: Katalon je komerčný framework, zatiaľ čo Selenium je open-source framework.

Tosca vs Selenium

  • Cieľové aplikácie: Tosca podporuje širokú škálu aplikácií a technológií, Selenium je vymedzený na webové aplikácie.
  • Podpora pre platformy: Tosca podporuje webové prehliadače, mobilné aplikácie, API a desktopové aplikácie, zatiaľ čo Selenium podporuje iba webové prehliadače.
  • Podpora pre programovací jazyky: Tosca aj Selenium podporujú širokú škálu programovacích jazykov
  • Flexibilita: Tosca je menej flexibilná ako Selenium, pokiaľ ide o funkcie testovania.
  • Rýchlosť: Tosca je rýchlejšia ako Selenium.
  • Ľahké použitie: Tosca je ľahšie použiteľný nástroj ako Selenium.
  • Cena: Tosca je komerčný framework, zatiaľ čo Selenium je open-source framework.

Záver

Automatizované testovanie uľahčí prácu testera a s pomocou nástroja Selenium podporuje agilný vývoj softvéru, pretože dokáže pružne reagovať na jeho zmeny. Kým tester musel v minulosti vynaložiť veľa času a úsilia do testovania softvéru a pri každej, čo i len nepatrnej zmene začať prakticky od začiatku, Selenium IT tester má v dnešnej dobe veľkú výhodu. Selenium automatizuje časté a opakované testovanie funkčnosti, výkonu a kompatibility webového prehliadača, a to poskytuje vývojárom takmer okamžitú spätnú väzbu.

Nástroj Selenium je super pre všetkých IT testerov či programátorov, hlavne vďaka jeho širokým možnostiam simulácií webových aplikácií. Ak chceš aj ty testovať softvérové aplikácie a ovládaš nemčinu, u nás v msg life Slovakia sa nájde niekoľko voľných miest. Prezri si najnovšie pracovné ponuky, máme skvelé firemné benefity. Pošli nám svoje CV a možno už čoskoro budeš diskutovať o testovaní spolu s našimi kolegami.

O autorovi

Michaela Kojnoková

Agile Test Engineer

Po štúdiu informatiky na ŽU a TUKE som sa najviac ponorila do oblasti automatizácie testovania. Okrem toho sa venujem tvorbe webov, databázam, dátovej analytike, umelej inteligencii a strojovému učeniu. Mám rada cestovanie, šport a najviac si užívam čas strávený v prírode s mojimi blízkymi. LinkedIn

Daj nám o sebe vedieť