Robotiikkaa sviitissä


Kirjoitin kesällä sarjan tekstejä nimellä “Helle haittaa koodaamista” ja lupasin palata koodaamisharjoituksiin, kun illat pimenevät. No nyt on kyllä ollut niin pimeää, että ainakin sen puolesta ollut mahdollisuus jatkaa koodausharjoituksia, ja tässä teille ensimmäisiä havaintoja ja pari videotakin itse koodaamistani ohjelmistoroboteista. Vielä mennään hyvin alkeissa, mutta ainakin on päästy eteenpäin.

Pääsin töiden puolesta järjestämään kaksi Mimmit koodaa -workshopia nyt syksyllä ja molemmissa perehdyttiin Robot Framework –teknologiaan. Aikaisemmassa tekstissäni (Avointa robotiikkaa) kerron hieman taustoja ohjelmistorobotiikasta ja Robot Frameworkista, joten en kertaa niitä tässä, vaan menen suoraan asiaan. Robot Framework on nimensä mukaisesti ”framework” eli suomeksi viitekehys, jonka tarkoitus on helpottaa koodaamista ja antaa tietynlaista rakennetta. Se sisältää muun muassa kirjastoja, joissa on jo valmiita avainsanoja ja työkaluja, jotka helpottavat erilaisten ohjelmistojen automatisointia. Tämä nopeuttaa huomattavasti koodaamista, kun kaikkea ei tarvitse aloittaa alusta, vaan valmiita palikoita on jo olemassa. Tarkempaa tietoa Robot Frameworkista löytyy täältä: http://robotframework.org/

Tämän blogin tarkoitus on avata teknologiatermejä ja tehdä myös koodaamisesta helpommin lähestyttävää, joten alla hieman sanastoa, millä pääsee hyvin alkuun.

Syntaksi = ohjelmointikielen kielioppi, jokaisella ohjelmointikielellä on omanlainen kirjoitusasu ja siitä puhutaan nimellä syntaksi

Robot Framework = automatisointiin kehitetty viitekehys (alun perin testausautomaatioon, mutta nykyään käytössä myös ohjelmistorobotiikassa), perustuu Python-ohjelmointikieleen. Alla Robot Frameworkin syntaksia.


Suite = tämä ei suinkaan ole sviitti, vaan Robot Frameworkissa sivu tai sisältö, joka sisältää kirjoitetun koodin. Alla kuva suitesta ja sen koostumuksesta.
Settings = tämän alla on lueteltu kyseisessä ohjelmistorobotissa/automaatiossa käytettävät kirjastot

Test cases / Tasks = Tähän kuvataan ne asiat, mitä ollaan automatisoimassa, esimerkiksi ”avaa verkkokauppa ja kirjaudu sisään”

Keywords = Nämä ovat niitä avainsanoja, jossa käsketään ohjelmistorobottia tekemään yksittäisiä toimintoja, kuten ”open browser” eli avaa selain. Avainsanoja listataan Test Cases –osion alle ja niitä voi helposti luoda myös itse lisää ja hyödyntää usealla ohjelmistorobotilla samoja avainsanoja.

Variables = eli suomeksi muuttujat, tarkoittavat paikkaa, johon ohjelmoinnissa varastoidaan tietoa.  Robtin tarvitsee esimerkiksi poimia järjestelmästä asiakasnumeroita ja tallettaa ne, niin nämä ovat esimerkkejä muuttujista.

String = Tämä ei tarkoita pikkuhousuja tai skandinaavista hyllyratkaisua, vaan koodatessa voidaan luoda ”stringejä” eli suomeksi merkkijonoja. Näitä voi käyttää esimerkiksi silloin, kun pitää etsiä jostain tekstistä tai numerosarjasta tiettyä kirjainta tai numeroa. Nämä ovat myös yhdenlaisia muuttujia.

Boolean = tämä on ollut jotenkin hankala sana ymmärtää, mutta suomennettuna voidaan puhua totuusarvoista (tosi/epätosi = true/false). Robotti voi kohdata tilanteita, joissa sille on opetettu, että järjestelmän jossain kentässä on esimerkiksi tietty luku ja jos näin on, on se ”tosi” ja jos lukua ei kentässä olekaan, on kyseessä ”epätosi”. Boolean on myös yhdenlainen muuttuja.

Alla vielä kaksi todella vikkelää ohjelmistorobottiani, joista saa hyvin käsityksen, minkä tasoista autoamaatiota tällainen aloittelija pystyy rakentamaan. Toinen luo kirjastosovellukseen uuden teoksen tietoineen ja toinen hakee joululahjoja verkkosivulta ja valitsee annetuilla tiedoilla sopivan joululahjan ennalta määritellylle lahjansaajalle.

Tässä ensimmäiset opit ja perusteet, joiden ymmärtäminen helpottaa huomattavasti koodauksen aloitusta. Ensimmäisen kerran, kun opettelin ohjelmistorobotiikkaa, ei näitä termejä oltu avattu mitenkään ja ihmettelin, että miten voidaan olettaa kaikkien tietävän, mitä tarkoittaa esimerkiksi ”boolean” tai ”string”. Siksi olen näitä nyt avannut ja yksinkertaistanut, jotta muut kaltaiseni koodaamisesta kiinnostuneet pääsisivät vähän helpommalla. Toivottavasti näistä vinkeistä on apua!