Skip to main content

Alla inom området testautomatisering känner till Robot Framework och Selenium. De är de två ledande automationsramverken som utvecklare och testare använder för att bygga testramverk som automatiserar testningen av en annan applikation.

Så vilka framtida tillämpningar har dessa ramverk, och hur kommer de att forma utvecklingen av teknik och webbapplikationer? I den här artikeln utforskar jag likheterna och skillnaderna mellan Robot Framework och Selenium, nyckelordsbaserad automatisering och andra expertinsikter.

Likheterna mellan Robot Framework och Selenium

Båda ramverken är beprövade tekniker. Selenium har funnits i över två decennier och Robot Framework närmar sig 20 år. 

Continue Reading for Free

Create a free account to finish this article, plus get ongoing access to timely insights and practical resources.

Båda är öppen källkod och har användarbaser på hundratusentals (om inte miljontals) användare. Ingen av dem är dock ett verktyg i ordets striktaste bemärkelse; de är ramverk som du använder för att bygga verktyget för ditt specifika teständamål. 

Robot Framework och Selenium används i stor utsträckning för att testa webbapplikationer. Selenium byggdes faktiskt uttryckligen för detta ändamål, medan Robot Framework utformades för att automatisera nästan vad som helst. Robot Framework används till och med för att testa tidskritiska signaleringssystem.

Båda ramverken är tillgängliga från olika programmeringsspråk—Selenium har en historisk koppling till Java och C++, medan Robot Framework främst förknippas med Python.

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

Skillnaderna mellan Robot Framework och Selenium

Ett ramverk för testautomatisering fungerar mellan testaren och applikationen som testas. Det tillhandahåller ett skriptgränssnitt (”övre testgränssnitt”) för att beskriva testerna för ramverket och ett drivrutinsgränssnitt (”undre testgränssnitt”) för att styra applikationen som testas genom att simulera användarens handlingar. Ramverkets huvudsakliga uppgift är således att översätta testskriptets kommandon i det övre gränssnittet till punkter, klick och tangenttryckningar i det undre gränssnittet.

Selenium etablerade ursprungligen standarden för det undre gränssnittet vid testning av webbapplikationer: en konsekvent modell för adressering av webbsideselement med hjälp av ett lokaliseringsformat som kallas XPath. Det övre gränssnittet i Selenium är bara ett tunt programmeringsbibliotek för att arbeta med XPath-uttryck, vilket kräver goda programmeringskunskaper. Dessutom vet alla Selenium-användare att XPath-uttryck tenderar att ändras och att tester kräver kontinuerligt, tidskrävande och kostsamt underhåll.

Robot Framework skapades ur frustration över omständliga automatiseringsverktyg, däribland Selenium. Designmålet var att bygga ett generellt automatiseringsramverk som kan utökas med anpassade bibliotek som implementerar olika testgränssnitt. Konceptet inspirerades av nyckelordsbaserad automatisering, som hade sin föregångare i Hans Buwalda och beteendedriven utveckling (BDD). 

Vad är nyckelordsbaserad automatisering i Robot Framework?

Nyckelordsbaserad automatisering är processen att programmera kommandon på hög nivå, såsom Logga in, Ange lead, Skapa kontakt med flera, som utför de typiska åtgärder som en testare eller verklig användare skulle utföra. Nyckelorden döljer de komplicerade detaljerna kring XPath och annan teknisk komplexitet. Testkonstruktörerna använder sedan nyckelorden för att definiera de faktiska testerna. Om något ändras i implementationen av den underliggande applikationen behöver man bara ändra definitionen av nyckelorden, så fungerar alla tester som använder nyckelordet igen.

Överväganden kring nyckelordsbaserad automatisering

Nyckelordsbaserad automatisering har dock en nackdel. Man måste lägga stor vikt vid att definiera nyckelordsordförrådet för att undvika en spridning av nyckelord. Om du tillämpar BDD är en spridning av nyckelord nästan garanterad. Om nyckelordsordförrådet är applikationsspecifikt innebär användning av Robot Framework för att utforma tester för en applikation inte att du är skicklig på att utforma tester för en annan. 

Precis som med Selenium tenderar utvecklarna som underhåller dessa nyckelordsimplementationer att bli flaskhalsar i processen. De föränderliga XPath-uttryck som behöver underhåll kan vara betydligt färre än med Selenium, men de finns fortfarande.

Fördelarna med nyckelordsbaserad automatisering och omfattande bibliotek

Robot Frameworks utbyggbarhet har gjort det möjligt för communityn att skapa många användbara nyckelordsbibliotek. Det finns till exempel minst tre unika bibliotek för webautomatisering: SeleniumLibrary, QWeb och BrowserLibrary.  Robot Frameworks SeleniumLibrary byggdes på Selenium, men med en högre abstraktionsnivå än Selenium självt. Communityn tillhandahåller en mängd bibliotek för olika andra ändamål, såsom API-testning eller generering av testdata. 

Om du är en professionell programmerare kan du utföra alla webautomatiseringsuppgifter med Selenium, men du måste slutföra uppgiften helt på egen hand. Robot Framework erbjuder samma nivå av flexibilitet, men med ett stort antal användbara bibliotek som kan göra ditt arbete mer produktivt.

Den välgenomtänkta modellen för utbyggbarhet är en av Robot Frameworks betydande styrkor. Du kan till exempel skapa nya nyckelordsbibliotek genom att programmera dem i Python eller något annat språk du väljer, eller så kan du helt enkelt sekvensera befintliga nyckelord, även med grundläggande kontrollstrukturer, för att skapa nya.

En kommentar om kodlöshet

Om du inte är professionell programmerare är du hjälplös med Selenium och, om jag ska vara ärlig, nästan hjälplös med Robot Framework. Du kan inte förstå särskilt mycket av ett Selenium-skript, men om du ser ett testskript i Robot Framework kan du förmodligen, men inte alltid, följa dess logik och förstå vad det är avsett att göra. Om du har bra exempel att kopiera och förbättra kommer du till och med att kunna skapa Robot Framework-skript själv.

Många testledare uppskattar att arbete med Robot Framework är mer produktivt än arbete med Selenium, tack vare den högre abstraktionsnivån och de färdiga biblioteken som minskar både kostnaden för automatisering och särskilt kostnaden för testunderhåll. Det är vanligt att se produktivitetsvinster på fyra till åtta gånger jämfört med Selenium. 

Å andra sidan kan du utan tvekan få det gjort med Selenium om du vet vad du gör: smärtan i att behöva göra nästan allt själv medför friheten att kunna göra vad som helst på egen hand.