Selenium

Selenium on tarkvara testimisraamistik veebirakenduste testimiseks. Seleniumi integreeritud arenduskeskkond (IDE) võimaldab kasutada taasesitamise vahendit, et ei oleks vaja ära õppida testide skriptikeelt. Selenium võimaldab kasutada ka domeenispetsiifilist keelt Selenese testide loomiseks programmeerimiskeelte abil, näiteks C#, Groovy, Java, Perl, PHP, Python, Ruby ja Scala. Teste on võimalik kasutada enamikus uuemates veebibrauserites ning Seleniumi tarkvara on ühilduv nii Windowsi, Linuxi kui ka macOS-i platvormidega. Selenium on väljastatud Apache 2.0 litsentsi all, lähtekood on avatud ning tarkvara on tasuta allalaadimiseks ja kasutamiseks.

Komponendid

Selenium koosneb erinevatest komponentidest, kus igal komponendil on oma kindel roll veebirakenduste testimise automatiseerimises.

Selenium IDE

Selenium IDE on täielik integreeritud arenduskeskkond Seleniumi testide jaoks. IDE on teostatud Firefoxi pistikprogrammina ja võimaldab teste salvestada, muuta ja siluda. Varem tuntud kui Selenium Recorder. Selenium IDE funktsionaalsuse implementeeris algselt Shinya Kastani ja aastal 2006 annetas ta selle Seleniumi projektile. Antud pistikprogrammi enam ei hooldata ning see ühildus Selenium RC-ga, mis on nüüdseks vananenud. Skripte saab automaatselt salvestada ja manuaalselt muuta, tarkvara toetab automaatset täitmist ja kiiret liikumist erinevate käskude vahel. Skriptid on kirjutatud Selenese keeles, mis on spetsiaalne skripikeel Seleniumi jaoks. Selenese võimaldab veebibrauseris erinevate käskude sooritamist (nt lingile klikkimine, valiku tegemine) ja lehtedelt informatsiooni leidmist. Firefoxi Selenium IDE lakkas töötamast peale Firefoxi 55 uuendust ja enam seda toetata.

Selenium Client API

Peale Selenese saab teste kirjutada ka muudes programmeerimiskeeltes. Testid edastavad infot sel juhul Seleniumile, kutsudes välja meetodeid Seleniumi kliendi rakendusliideses. Selenium pakub rakendusliidest Java, C#, Ruby, Javascripti ja Pythoni jaoks. Selenium 2-ga tutvustati uut kliendi rakendusliidest, kus põhikomponent on Webdriver. Vana Seleniumi klassi kasutav rakendusliides on aga siiamaani toetatud.

Selenium Webdriver

Selenium Webdriver on Selenium RC järeltulija. Webdriver võtab vastu käsud Selenese keeles või kliendi rakendusliidese (API) kaudu ja saadab need veebibrauserile edasi. See on implementeeritud veebibrauserispetsiifilise draiveri kaudu, mis saadab käske edasi veebibrauserile ja otsib informatsiooni. Enamus veebibrauseri draivereid käivitab ja külastab veebibrauserirakendusi (nt Firefox, Chrome, Internet Explorer, Michrosoft Edge, HtmlUnit). Selenium 1 kasutades oli testide jooksutamiseks vajalik Seleniumi server. Selenium Webdriver aga ei vaja testide käivitamiseks eraldiseisvat serverit. Webdriver käivitab otse veebibrauseri ja võtab selle üle kontrolli. Webdriveriga teste kaughaldussüsteemides jooksutades võib lisaks kasutada Selenium Gridi (vt allpool). Kui võimalik, kasutab Webdriver operatsioonisüsteemi enda funktsionaalsust, mitte veebibrauseripõhiseid JavaScripti käske.

Selenium Remote Control

Selenium Remote Control (RC) on server veebibrauseri poolt tulevate käskude vastuvõtmiseks HTTP kaudu. RC teeb võimalikuks veebirakendustele automatiseeritud testide kirjutamise igas programmeerimiskeeles, mis võimaldab Seleniumi paremat integratsiooni olemasolevatesse ühiktestimise raamistikesse. Testide kirjutamise lihtsustamiseks pakub Selenium kliendidraivereid PHP-le, Pythonile, Rubyle, .Net’ile, Perlile ja Javale. Selenium 2 väljatulemisega on Selenium RC ametlikult vananenud, nüüdsest eelistatakse Selenium Webdriverit.

Selenium Grid

Selenium Grid on server, mis laseb testidel kasutada veebibaruserit, mis jookseb kaughaldusserveris.