Robot Frameworkin ja Seleniumin tulevaisuus

By Esko Hannula

Robot Frameworkin ja Seleniumin tulevaisuuden seuraaminen on tärkeää kaikille testiautomaation parissa työskenteleville. Lue niistä lisää täältä!

Kaikki testiautomaation parissa työskentelevät tuntevat Robot Frameworkin ja Seleniumin. Ne ovat kaksi johtavaa automaatiokehystä, joita kehittäjät ja testaajat käyttävät testikehysten rakentamiseen toisen sovelluksen testaamisen automatisoimiseksi.

Millaisia tulevaisuuden sovelluksia näillä kehyksillä siis on, ja miten ne muovaavat teknologian ja verkkosovellusten kehitystä? Tässä artikkelissa tarkastelen Robot Frameworkin ja Seleniumin yhtäläisyyksiä ja eroja, avainsana-automaatiota sekä muita asiantuntijoiden näkemyksiä.

Robot Frameworkin ja Seleniumin yhtäläisyydet

Molemmat kehykset ovat hyväksi havaittuja teknologioita: Selenium on ollut olemassa yli kaksi vuosikymmentä ja Robot Framework lähestyy 20 vuoden ikää. 

Molemmat ovat avoimen lähdekoodin ratkaisuja, ja niillä on satojentuhansien, ellei jopa miljoonien, käyttäjien yhteisöt. Kumpikaan ei kuitenkaan ole sanan tiukimmassa merkityksessä työkalu, vaan kehyksiä, joiden avulla rakennetaan tiettyyn testaustarkoitukseen sopiva työkalu. 

Robot Frameworkia ja Seleniumia käytetään laajalti verkkosovellusten testaamiseen. Selenium rakennettiin alun perin nimenomaan tätä tarkoitusta varten, kun taas Robot Framework suunniteltiin lähes minkä tahansa asian automatisointiin. Robot Frameworkia käytetään tiettävästi jopa aikakriittisten signalointijärjestelmien testaamiseen.

Molempia kehyksiä voi käyttää eri ohjelmointikielillä — Selenium yhdistetään historiallisesti Javaan ja C++:aan, kun taas Robot Framework yhdistetään ensisijaisesti Pythoniin.

Get Free Access
Get regular tech leadership wisdom for delivering better software and systems.
Get Free Access

Have an account? Log In

Robot Frameworkin ja Seleniumin erot

Testiautomaatiokehys toimii testaajan ja testattavan sovelluksen välissä. Se tarjoaa komentosarjaliittymän (”ylempi testiliittymä”), jolla testit kuvataan kehykselle, sekä ohjainliittymän (”alempi testiliittymä”), jolla testattavaa sovellusta ohjataan käyttäjän toimia jäljitellen. Kehyksen päätehtävänä on siis kääntää testikomentosarjan ylemmän liittymän komennot alemman liittymän pisteiksi, napsautuksiksi ja näppäinpainalluksiksi.

Selenium määritti alun perin verkkosovellusten testauksen alemman liittymän standardin: verkkosivun elementteihin kohdistamiseen käytetään yhdenmukaista XPath-paikantimeen perustuvaa mallia. Seleniumin ylempi liittymä on vain ohut ohjelmointikirjasto XPath-lausekkeiden kanssa työskentelyyn, mikä edellyttää vahvaa ohjelmointiosaamista. Lisäksi kaikki Seleniumin käyttäjät tietävät, että XPath-lausekkeet muuttuvat helposti ja testit vaativat jatkuvaa, aikaa vievää ja kallista ylläpitoa.

Robot Framework syntyi hankalien automaatiotyökalujen, Selenium mukaan lukien, aiheuttamasta turhautumisesta. Tavoitteena oli rakentaa yleiskäyttöinen automaatiokehys, jota voi laajentaa eri testiliittymiä toteuttavilla mukautetuilla kirjastoilla. Konsepti sai vaikutteita avainsanapohjaisesta automaatiosta, jonka uranuurtajia olivat Hans Buwalda ja käyttäytymislähtöinen kehitys (BDD). 

Mitä avainsanapohjainen automaatio on Robot Frameworkissa?

Avainsanapohjainen automaatio on prosessi, jossa ohjelmoidaan korkean tason komentoja, kuten Login, EnterLead, CreateContact ja muita vastaavia komentoja, jotka suorittavat testaajan tai todellisen käyttäjän tyypillisiä toimia. Avainsanat piilottavat XPath-lausekkeiden ja muiden teknisten yksityiskohtien hankaluudet. Testien suunnittelijat käyttävät sen jälkeen avainsanoja varsinaisten testien määrittämiseen. Jos taustalla olevan sovelluksen toteutuksessa tapahtuu muutoksia, avainsanojen määritelmiä tarvitsee muuttaa vain kerran, minkä jälkeen kaikki avainsanaa käyttävät testit toimivat jälleen.

Avainsanapohjaisen automaation huomioon otettavat seikat

Avainsanapohjaiseen automaatioon liittyy kuitenkin yksi varoitus. Avainsanojen sanaston määrittelyyn on kiinnitettävä paljon huomiota, jotta avainsanojen määrä ei kasva hallitsemattomasti. Jos käytät BDD:tä, avainsanojen määrän kasvu on lähes taattu. Jos avainsanojen sanasto on sovelluskohtainen, Robot Frameworkin käyttäminen yhden sovelluksen testien suunnitteluun ei tarkoita, että käyttäjä osaisi suunnitella testejä toiselle sovellukselle. 

Ja aivan kuten Seleniumin tapauksessa, näitä avainsanojen toteutuksia ylläpitävistä kehittäjistä tulee helposti prosessin pullonkauloja. Ylläpitoa vaativia, muuttuvia XPath-lausekkeita voi olla huomattavasti vähemmän kuin Seleniumia käytettäessä, mutta niitä on silti olemassa.

More Articles

Avainsanapohjaisen automaation ja laajojen kirjastojen hyödyt

Robot Frameworkin laajennettavuus on mahdollistanut yhteisölle lukuisten hyödyllisten avainsanakirjastojen luomisen. Esimerkiksi erilaisia web-automaatiokirjastoja on vähintään kolme: SeleniumLibrary, QWeb ja BrowserLibrary.  Robot Frameworkin SeleniumLibrary rakennettiin Seleniumin päälle, mutta korkeammalla abstraktiotasolla kuin itse Selenium. Yhteisö ylläpitää lukemattomia kirjastoja myös moniin muihin tarkoituksiin, kuten rajapintatestaukseen tai testidatan luomiseen. 

Jos olet ammattiohjelmoija, voit toteuttaa minkä tahansa web-automaatiotehtävän Seleniumilla, mutta sinun on suoritettava koko tehtävä itse. Robot Framework tarjoaa saman joustavuuden, mutta lisäksi valtavan määrän hyödyllisiä kirjastoja, jotka voivat tehostaa työskentelyäsi.

Huolellisesti suunniteltu laajennettavuusmalli on yksi Robot Frameworkin merkittävistä vahvuuksista. Voit esimerkiksi luoda uusia avainsanakirjastoja ohjelmoimalla ne Pythonilla tai valitsemallasi muulla kielellä, tai voit yksinkertaisesti ketjuttaa olemassa olevia avainsanoja ja luoda niiden avulla uusia, jopa perustason ohjausrakenteita käyttäen.

Huomio koodittomuudesta

Jos et ole ammattiohjelmoija, olet Seleniumin kanssa avuton ja suoraan sanoen lähes avuton myös Robot Frameworkin kanssa. Et pysty ymmärtämään paljoakaan Selenium-komentosarjasta, mutta jos näet Robot Framework -testikomentosarjan, pystyt todennäköisesti, joskaan et aina, seuraamaan sen logiikkaa ja ymmärtämään, mitä sen on tarkoitus tehdä. Jos sinulla on hyviä esimerkkejä kopioitavaksi ja parannettavaksi, pystyt jopa luomaan Robot Framework -komentosarjoja itse.

Monet testausvastaavat arvioivat, että Robot Frameworkin kanssa työskentely on tuottavampaa kuin Seleniumin kanssa työskentely sen korkeamman abstraktiotason ja valmiiden kirjastojen ansiosta. Ne vähentävät sekä automaation kustannuksia että erityisesti testien ylläpidon kustannuksia. Seleniumiin verrattuna nelin- tai kahdeksankertaiset tuottavuushyödyt ovat yleisiä. 

Toisaalta, jos tiedät mitä olet tekemässä, saat epäilemättä kaiken tehdyksi Seleniumilla: sen tuskan, että joudut tekemään lähes kaiken itse, korvaa vapaus tehdä mitä tahansa itse.

Esko Hannula
Esko Hannula is VP Product Line Management at Copado, a DevOps and testing solution for low code SaaS platforms that run the world’s largest digital transformations. Backed by Insight Partners, Salesforce Ventures and SoftBank Vision Fund, Copado accelerates multi-cloud, enterprise deployments by automating the end-to-end software delivery process to maximize customers’ return on their cloud investment.
Follow the author:

You may also like