Alle som arbeider med testautomatisering, kjenner til Robot Framework og Selenium. De er de to ledende automatiseringsrammeverkene som utviklere og testere bruker til å bygge testrammeverk som automatiserer testingen av en annen applikasjon.
Så hva er de fremtidige bruksområdene for disse rammeverkene, og hvordan vil de forme utviklingen av teknologi og nettapplikasjoner? I denne artikkelen skal jeg utforske likhetene og forskjellene mellom Robot Framework og Selenium, nøkkelordautomatisering og andre ekspertinnsikter.
Likhetene mellom Robot Framework og Selenium
Begge rammeverkene er velprøvde teknologier. Selenium har eksistert i over to tiår, mens Robot Framework nærmer seg 20 år.
Begge er åpen kildekode og har brukerbaser på hundretusener (om ikke millioner). Ingen av dem er imidlertid et verktøy i ordets strengeste betydning; de er rammeverk du bruker til å bygge verktøyet for ditt spesifikke testformål.
Robot Framework og Selenium brukes i stor utstrekning til testing av nettapplikasjoner. Selenium ble faktisk utviklet uttrykkelig for dette formålet, mens Robot Framework ble utformet for å automatisere nesten hva som helst. Robot Framework er kjent for å bli brukt selv til testing av tidssensitive signalsystemer.
Begge rammeverkene er tilgjengelige fra ulike programmeringsspråk—Selenium har en historisk tilknytning til Java og C++, mens Robot Framework først og fremst forbindes med Python.
Have an account? Log In
Forskjellene mellom Robot Framework og Selenium
Et testautomatiseringsrammeverk fungerer som et mellomledd mellom testeren og applikasjonen som testes. Det tilbyr et skriptgrensesnitt («øvre testgrensesnitt») for å beskrive testene for rammeverket og et drivergrensesnitt («nedre testgrensesnitt») for å styre applikasjonen som testes ved å simulere brukerens handlinger. Rammeverkets hovedoppgave er dermed å oversette kommandoene i testskriptet i det øvre grensesnittet til punkter, klikk og tastetrykk i det nedre grensesnittet.
Selenium etablerte opprinnelig standarden for det nedre grensesnittet ved testing av nettapplikasjoner: en konsekvent modell for adressering av elementer på nettsider ved hjelp av et lokaliseringsformat kjent som XPath. Det øvre grensesnittet i Selenium er bare et tynt programmeringsbibliotek for arbeid med XPath-uttrykk, noe som krever gode programmeringsferdigheter. I tillegg vet alle Selenium-brukere at XPath-uttrykk har en tendens til å endres, og at tester krever kontinuerlig, tidkrevende og kostbar vedlikehold.
Robot Framework ble til som følge av frustrasjon over tungvinte automatiseringsverktøy, blant annet Selenium. Målet med utformingen var å bygge et generisk automatiseringsrammeverk som kan utvides med egendefinerte biblioteker som implementerer ulike testgrensesnitt. Konseptet var inspirert av nøkkelordbasert automatisering, som ble utviklet av Hans Buwalda og atferdsdrevet utvikling (BDD).
Hva er nøkkelordbasert automatisering i Robot Framework?
Nøkkelordbasert automatisering er prosessen med å programmere kommandoer på høyt nivå, som LoggInn, SkrivInnPotensiellKunde, OpprettKontakt osv., som utfører de typiske handlingene en tester eller faktisk bruker ville utført. Nøkkelordene skjuler de kompliserte detaljene i XPath-uttrykk og andre tekniske forhold. Testdesignerne bruker deretter nøkkelordene til å definere de faktiske testene. Hvis noe endres i implementeringen av den underliggende applikasjonen, trenger man bare å endre definisjonen av nøkkelordene, så vil alle tester som bruker nøkkelordet, fungere igjen.
Vurderinger ved nøkkelordbasert automatisering
Nøkkelordbasert automatisering har imidlertid en ulempe. Det må legges stor vekt på å definere nøkkelordforrådet for å unngå en ukontrollert økning i antall nøkkelord. Hvis du bruker BDD, er en slik økning i antall nøkkelord nesten garantert. Hvis nøkkelordforrådet er applikasjonsspesifikt, betyr ikke det at bruk av Robot Framework til å utforme tester for én applikasjon innebærer at man er dyktig til å utforme tester for en annen.
Og akkurat som med Selenium har utviklerne som vedlikeholder disse nøkkelordimplementasjonene, en tendens til å bli flaskehalser i prosessen. De ustabile XPath-uttrykkene som må vedlikeholdes, kan være langt færre enn med Selenium, men de finnes fortsatt.
More Articles
Fordeler med nøkkelordbasert automatisering og omfattende biblioteker
Utvidbarheten i Robot Framework har gjort det mulig for fellesskapet å lage mange nyttige nøkkelordbiblioteker. Det finnes for eksempel minst tre unike biblioteker for nettautomatisering: SeleniumLibrary, QWeb og BrowserLibrary. Robot Framework SeleniumLibrary ble bygget på Selenium, men på et høyere abstraksjonsnivå enn Selenium selv. Fellesskapet tilbyr en mengde biblioteker for ulike andre formål, for eksempel API-testing eller generering av testdata.
Hvis du er en profesjonell programmerer, kan du utføre enhver nettautomatiseringsoppgave med Selenium, men du må fullføre oppgaven helt på egen hånd. Robot Framework gir den samme graden av fleksibilitet, men med et stort antall nyttige biblioteker som kan gjøre arbeidet ditt mer produktivt.
Den gjennomtenkte modellen for utvidbarhet er en av Robot Frameworks betydelige styrker. Du kan for eksempel opprette nye nøkkelordbiblioteker ved å programmere dem i Python eller et annet språk du velger, eller du kan ganske enkelt sette sammen eksisterende nøkkelord, også med grunnleggende kontrollstrukturer, for å opprette nye.
En merknad om automatisering uten kode
Hvis du ikke er en profesjonell programmerer, vil du være hjelpeløs med Selenium og, for å være ærlig, nesten hjelpeløs med Robot Framework. Du kan ikke forstå stort av et Selenium-skript, men hvis du ser et testskript i Robot Framework, kan du sannsynligvis, men ikke alltid, følge logikken og forstå hva det skal gjøre. Hvis du har gode eksempler å kopiere og forbedre, vil du til og med kunne lage Robot Framework-skript selv.
Mange testledere anslår at det er mer produktivt å arbeide med Robot Framework enn med Selenium, takket være det høyere abstraksjonsnivået og ferdige biblioteker som reduserer både kostnadene ved automatisering og særlig kostnadene ved testvedlikehold. Det er vanlig å se produktivitetsøkninger på fire til åtte ganger sammenlignet med Selenium.
På den annen side kan du utvilsomt få det gjort med Selenium hvis du vet hva du gjør: Smerten ved å måtte gjøre nesten alt selv oppveies av friheten til å kunne gjøre hva som helst på egen hånd.



