Robot framework on alkujaan Pekka Klärcin ja Nokia Networksin kehittämä Python-ohjelmointikielellä kirjoitettu testaus- ja automaatiotyökalu testauksien luomiseen ja testaustyön helpottamiseen.
Se on avoimen lähdekoodin ohjelmistoratkaisu ja lisenssoitu Apache License 2.0:n alaisena. Sen voi ladata ilmaiseksi osoitteesta robotframework.org. Nykyään Robot Framework Foundation vastaa työkalun kehityksestä.
Keskeisiä ominaisuuksia ja etuja:
- Helppo käytettävyys: Robot Frameworkin selkeä ja luettava syntaksi tekee testien kirjoittamisesta helppoa ja nopeaa. Testitapaukset ilmaistaan avainsanojen (keywords) avulla, mikä mahdollistaa testien yksinkertaisen ja selkeän organisoinnin.
- Laajennettavuus: Robot Frameworkia voidaan laajentaa monipuolisesti erilaisten kirjastojen avulla, jotka tarjoavat valmiita toiminnallisuuksia eri käyttötarkoituksiin. Näitä kirjastoja voi olla saatavilla useilla eri ohjelmointikielillä.
- Raportointi ja lokitus: Robot Framework tarjoaa kattavat raportointi- ja lokitusominaisuudet, mikä helpottaa testitulosten analysointia ja ongelmanratkaisua.
- Ristiinalustainen tuki: Robot Framework tukee testien suorittamista eri alustoilla, kuten Windows, Linux ja macOS, sekä eri selain- ja mobiilisovelluksissa.
- Yhteisö ja tuki: Robot Frameworkilla on aktiivinen kehittäjäyhteisö, joka tarjoaa tukea ja jakaa tietoa käyttäjille eri foorumeilla ja keskustelualueilla. Lisäksi on saatavilla kattava dokumentaatio ja opetusmateriaalia.
Kaiken kaikkiaan Robot Framework tarjoaa tehokkaan ja joustavan työkalun ohjelmistotestaukseen ja automaatioon, ja se on suosittu valinta monissa organisaatioissa eri aloilla.
Robot Frameworkia käytetään testien kirjoittamiseen ja suorittamiseen seuraavien vaiheiden kautta:
- Asennus ja ympäristön valmistelu: Ennen Robot Frameworkin käyttöä on varmistettava, että Python ja tarvittavat riippuvuudet ovat asennettuina järjestelmään. Robot Frameworkin voi asentaa helposti pip-paketinhallintatyökalulla.
- Testitapausten kirjoittaminen: Testitapaukset ilmaistaan Robot Frameworkissa avainsanojen (keywords) ja testitaulukoiden avulla. Avainsanat kuvaavat toiminnallisuuksia, kuten klikkaus, syötteen antaminen, odotettujen tulosten tarkistus jne. Testitaulukot määrittävät testitapaukset ja niiden suoritusjärjestyksen.
- Testien organisointi: Testitapaukset voidaan järjestää testisarjoiksi (test suites) ja testauskirjastoiksi (test libraries) tarpeiden mukaan. Testisarjat auttavat ryhmittelemään liittyvät testitapaukset yhteen, kun taas testauskirjastot tarjoavat uudelleenkäytettäviä toiminnallisuuksia.
- Testien suorittaminen: Robot Frameworkilla voi suorittaa testit joko komentoriviltä tai käyttöliittymän kautta. Testien suoritusprosessi tuottaa kattavan raportin suoritettujen testien tuloksista ja mahdollisista virheistä.
- Raportointi ja analysointi: Suoritettujen testien tulokset tallennetaan yleensä raporttitiedostoon, joka sisältää yksityiskohtaisen katsauksen testien suoritusajasta, onnistumisprosentista ja mahdollisista virheistä. Raportointia voidaan muokata tarpeiden mukaan, ja tuloksia voidaan analysoida testien laadun parantamiseksi.
- Iteratiivinen kehitys: Testien kirjoittaminen ja suorittaminen ovat iteratiivinen prosessi, jossa testitapauksia lisätään ja muokataan jatkuvasti ohjelmiston kehityksen ja muutosten myötä.
Yllä olevat vaiheet ovat yleinen prosessi Robot Frameworkin käytössä, mutta tarkempi käyttö riippuu organisaation tarpeista ja testattavasta ohjelmistosta. Lisäksi Robot Frameworkin joustavuus mahdollistaa sen integroimisen muihin työkaluihin ja prosesseihin tarpeen mukaan.
Tässä on muutamia lyhyitä esimerkkejä Robot Frameworkin käytöstä eri testitapauksissa:
- Yksinkertainen verkkosovelluksen testi:
*** Test Cases ***
Avaa Selausohjelma Ja Mene Verkkosivulle
Avaa Selain https://www.example.com
Odota Sivun Latautumista
Sivun Otsikon Tulee Olla Example Domain
Sulje Selain
- Testi lomakkeen täyttämisestä ja lähettämisestä:
*** Test Cases ***
Täytä Lomake Ja Lähetä
Avaa Selain https://www.example.com/form
Syötä Teksti css:input[name="username"] testikäyttäjä
Syötä Salasana css:input[name="password"] salasana123
Valitse Vaihtoehto css:select[name="country"] Finland
Klikkaa Painiketta css:button[type="submit"]
Odota Sivun Latautumista
Sivun Otsikon Tulee Olla Success Page
Sivun Tekstin Tulee Sisältää Tietosi on vastaanotettu
Sulje Selain
- API-kutsun testaaminen:
*** Test Cases ***
Tarkista API-vastaus
${response}= Hae HTTP-pyyntö GET https://api.example.com/data
Tarkista, Että Statuskoodi On ${response.status_code} 200
Tarkista, Että JSON-vastaus Sisältää Avaimen ${response.json()} expected_key
Näissä esimerkeissä testitapaukset määritellään selkeästi avainsanojen avulla, jotka suorittavat erilaisia toimintoja, kuten selausohjelman avaamisen, lomakkeen täyttämisen ja API-kutsun suorittamisen. Lisäksi testitapaukset sisältävät odotuksia, jotka tarkistavat, että testatut toiminnot suoritetaan odotetusti.
- Dynaamisen sisällön tarkistaminen verkkosivustolla:
*** Test Cases ***
Tarkista Dynaaminen Sisältö
Avaa Selain https://www.example.com
Odota Sivun Latautumista
${element_text}= Hae Tekstin Sisältö css:h1
Tarkista, Että Teksti Sisältää ${element_text} Tervetuloa
Sulje Selain
- Useiden käyttäjätunnusten kirjautuminen ja uloskirjautuminen järjestelmässä:
*** Test Cases ***
Useiden Käyttäjien Kirjautuminen Ja Uloskirjautuminen
[Setup] Avaa Selain https://www.example.com/login
Kirjaudu Sisään käyttäjä1 salasana1
Tarkista, Että Kirjautuminen Onnistui
Kirjaudu Ulos
Tarkista, Että Uloskirjautuminen Onnistui
Kirjaudu Sisään käyttäjä2 salasana2
Tarkista, Että Kirjautuminen Onnistui
Kirjaudu Ulos
Tarkista, Että Uloskirjautuminen Onnistui
[Teardown] Sulje Selain
- Ristiinalustatestaus mobiilisovellukselle käyttäen Appiumia:
*** Test Cases ***
Testaa Kirjautuminen Mobiilisovelluksessa
Avaa Mobiilisovellus platform=Android deviceName=emulator-5554 app=~/path/to/app.apk
Kirjaudu Sisään käyttäjätunnus salasana
Tarkista, Että Kirjautuminen Onnistui
Sulje Mobiilisovellus
- Tietokantakyselyjen suorittaminen ja tulosten tarkistaminen:
*** Test Cases ***
Tarkista Tietokantatulos
${query_result}= Suorita Tietokantakysely SELECT * FROM users WHERE username = 'test_user'
Tarkista, Että Rivien Määrä On ${query_result.row_count} 1
${user_data}= Muunna Tietokantatulos Sanaksi ${query_result}
Tarkista, Että Sanassa On Avain ${user_data} username test_user
Näissä esimerkeissä käytetään erilaisia Robot Frameworkin ominaisuuksia ja kirjastoja, kuten selainajuria (Selenium), HTTP-kirjastoa, Appiumia mobiilisovellusten testaukseen ja tietokantakirjastoa, testaamaan erilaisia sovelluksia ja järjestelmiä. Lisäksi testitapaukset sisältävät asetukset (Setup) ja purkaukset (Teardown) varmistaakseen testiympäristön asianmukaisen tilan ennen ja jälkeen testitapausten suorituksen.
- Suorituskykytestaus HTTP-palvelimelle:
*** Test Cases ***
Suorituskykytestaus HTTP-palvelimelle
Avaa Yhteys Palvelimeen http://www.example.com
Aseta HTTP-Asiakkaan Otsikot Accept-Language fi-FI
${response}= Lähetä HTTP-Pyyntö GET /
Tarkista, Että Statuskoodi On ${response.status_code} 200
Sulje Yhteys Palvelimeen
- Regression testaus web-sovelluksen uudelleenjulkaisun yhteydessä:
*** Test Cases ***
Regression Testaus
[Setup] Avaa Selain https://www.example.com
Testaa Toiminnallisuus X
Testaa Toiminnallisuus Y
Testaa Toiminnallisuus Z
[Teardown] Sulje Selain
- Testaus skenaarioihin perustuvalla lähestymistavalla:
*** Test Cases ***
Tilauksen Käsittely
[Documentation] Tämä skenaario testaa tilauksen käsittelyprosessia verkkokaupassa.
[Tags] tilaus
Asiakas Lisää Tuotteen Ostoskoriin
Asiakas Kirjautuu Sisään
Asiakas Syöttää Toimitusosoitteen
Asiakas Vahvistaa Tilauksen
Tarkista, Että Tilauksen Vahvistusviesti On Näkyvissä
Tuotteen Arvostelu
[Documentation] Tämä skenaario testaa tuotteen arvostelun jättämistä verkkokaupassa.
[Tags] arvostelu
Asiakas Etsii Tuotetta
Asiakas Valitsee Tuotteen
Asiakas Jättää Arvostelun
Tarkista, Että Arvostelu On Tallennettu Onnistuneesti
Näissä esimerkeissä Robot Frameworkia käytetään erilaisiin testauksen näkökulmiin, kuten suorituskykytestaukseen, regression testaukseen, skenaarioihin perustuvaan testaukseen ja web-sovellusten toiminnallisuuden tarkistamiseen.