Blog

JavaFX-sovellusten testaus helposti Python-pohjaisella Robot Frameworkilla

MAR 28, 2018

Java- ja JavaFX-pohjaisten uudempien käyttöliittymien hyväksymistestaus onnistuu nyt Robot Frameworkilla. Voit silti pitää Python-pohjaisen testauskokonaisuutesi. Hienoa, eikö? Lue lisää, miten se onnistuu!

Sami Pesonen

Sami, Senior Consultant at Eficode, has a deep understanding in Devops pipelines, Docker containers, Ansible provisioning, Vagrant virtualization and Jira requirement management. Sami is also an experienced Devops trainer.

Java Swing -widget-kirjastolle on ollut jo pitkään Robot Framework -testikirjasto, mutta JavaFX on puuttunut. Tarvitsimme sitä itse, joten aloimme kartoittaa JavaFX-työkalupaketteja keväällä 2017. Löysimme TestFX:n, joka on monipuolinen JavaFX:n yksikkötestauskehys.

Me (minä, Jukka Haavisto ja Pasi Saikkonen) aloimme toteuttaa TestFX:ään perustuvaa wrapper-kirjastoa ja teimme ensimmäiset testit Robot Frameworkin Java-toteutuksella Jybotilla (käyttäen Jythonia). Otimme kirjaston käyttöön oikeassa asiakassovelluksessa. Projektissa käytimme myös muita Python-pohjaisia testikirjastoja web- ja API-testaukseen, ja huomasimme pian, ettei Jython-riippuvuus ole hyvä idea, sillä Python 2.7:n tuki päättyy vuonna 2020. Python-pohjaiset testauskokonaisuudet ovat siirtymässä Python 3:een, eikä Jython vielä tue Python 3:a. Toteutimme kirjastolle remote library -tuen, jonka ansiosta Robot Frameworkia voi käyttää sellaisenaan joko Python 2.7.x:n tai 3.x:n kanssa. Uskomme, että tämä on oikea suunta Robot-kirjastoille yleisesti, kun käytössä on jokin muu kieli kuin Python.

Olemme erittäin innoissamme ja kiitollisia Eficodelle mahdollisuudesta julkaista tämä kirjasto avoimena lähdekoodina. Se on nyt julkaistu Apache 2.0 -lisenssillä GitHubissa. Voit käyttää sitä vapaasti. Lataa vain Jar-tiedosto julkaisualueelta, käynnistä se komennolla `java -jar JavaFXLibrary-<version>.jar`, niin JavaFXLibrary kuuntelee osoitteessa 192.168.x.y portissa 8270.

JavaFXLibrary blog image

Tämän jälkeen voit suorittaa esimerkiksi seuraavanlaisen testisuiten Python-pohjaisella Robot Frameworkilla:

JavaFXLibrary_blog_test_case.png

Tässä esimerkissä suiten alustuksessa käynnistetään Java classpathissa oleva TestKeyboardRobot-testisovellus. Testissä klikataan tunnisteella `keyCombinationLabel` merkittyä otsikkoa ja painetaan näppäinyhdistelmää CTRL+SHIFT+G. Tämän jälkeen varmistetaan, että `keyCombinationLabel`-otsikon arvo on `Passed`. Käyttöliittymäobjektit voidaan tunnistaa tunnisteen, styleClassin ja tekstin perusteella. Voit käyttää myös näiden yhdistelmää ja indeksiä, jos osumia löytyy useita. Käyttöliittymäobjektien tunnistamiseen voit käyttää Scenicview -sovellusta, joka on myös ladattavissa maksutta.

JavaFXLibrary_blog_test_app.png

JavaFXLibraryn GitHub-repositoriossa on hyväksymistestit (tätä kirjoitettaessa 169) kaikille tarjotuille avainsanoille. Kokeile niitä demona nähdäksesi, mitä kirjasto pystyy tekemään. Suunnittelemme Robot Framework -meetupien järjestämistä Tampereella ja Helsingissä, joissa esittelemme kirjaston kasvokkain tämän vuoden aikana. Pysy kuulolla.

Haluatko viedä hyväksymistestisi seuraavalle tasolle? Onko sinulla käyttöliittymä tai sovellus, jonka automatisointi on hankalaa? Tarvitseeko sinun automatisoida useita käyttöliittymiä samanaikaisesti? Ota yhteyttä – autamme mielellämme!

  • Ohjelmistokehitys
  • DevOps

Subscribe to our newsletter