Vad är selen? Introduktion till Selenium Automation Testing

Innehållsförteckning:

Anonim

Vad är selen?

Selenium är ett gratis (öppen källkod) automatiserat testramverk som används för att validera webbapplikationer över olika webbläsare och plattformar. Du kan använda flera programmeringsspråk som Java, C #, Python etc för att skapa Selenium Test Scripts. Test som görs med Selen-testverktyget kallas vanligtvis Selen Testing.

Selenium Software är inte bara ett enda verktyg utan en programvarupaket som varje del tillgodoser olika organisationers behov av Selen QA-test. Här är listan över verktyg

  • Selenintegrerad utvecklingsmiljö (IDE)
  • Selen fjärrkontroll (RC)
  • WebDriver
  • Selen Grid
Introduktion till selen

För närvarande slås Selenium RC och WebDriver samman till ett enda ramverk för att bilda Selenium 2 . Selen 1 hänvisar förresten till Selen RC.

Klicka här om videon inte är tillgänglig

I den här handledningen lär du dig:

  • Vad är selen?
  • Vem utvecklade selen?
  • Samma ursprungspolicyfråga
  • Födelse av selen fjärrkontroll (Selen RC)
  • Födelse av Selen Grid
  • Födelse av Selen IDE
  • Födelse av WebDriver
  • Födelse av selen 2
  • Så, varför heter selen?
  • Kort introduktion Selen IDE
  • Kort introduktion Selen fjärrkontroll (Selen RC)
  • Kort introduktion WebDriver
  • Selen Grid
  • Anvisning om webbläsar- och miljöstöd
  • Hur du väljer rätt selenverktyg för ditt behov
  • En jämförelse mellan selen och QTP (nu UFT)
  • Fördelar med QTP jämfört med selen

Vem utvecklade selen?

Eftersom Selenium är en samling olika verktyg hade det också olika utvecklare. Nedan är de nyckelpersoner som gjorde betydande bidrag till Selen-projektet

Selenium skapades främst av Jason Huggins 2004 . En ingenjör på ThoughtWorks, han arbetade med en webbapplikation som krävde täta tester. Efter att ha insett att den upprepade manuella testningen av deras applikation blev mer och mer ineffektiv skapade han ett JavaScript-program som automatiskt skulle kontrollera webbläsarens handlingar. Han namngav detta program som " JavaScriptTestRunner ."

Han såg potentialen i denna idé för att automatisera andra webbapplikationer och skapade JavaScriptRunner med öppen källkod som senare döptes om till Selenium Core .

Samma ursprungspolicyfråga

Samma Origin-policy förbjuder JavaScript-kod att komma åt element från en domän som skiljer sig från var den lanserades . Exempel: HTML-koden på www.google.com använder ett JavaScript-program "randomScript.js". Samma ursprungspolicy tillåter endast randomScript.js att komma åt sidor på google.com som google.com/mail, google.com/login eller google.com/signup. Det kan dock inte komma åt sidor från olika webbplatser som yahoo.com/search eller guru99.com eftersom de tillhör olika domäner.

Detta är anledningen till att testare innan Selenium RC behövde installera lokala kopior av både Selenium Core (ett JavaScript-program) och webbservern som innehåller webbapplikationen som testas så att de tillhör samma domän

Födelse av selen fjärrkontroll (Selen RC)

Tyvärr; testare som använder Selenium Core var tvungna att installera hela applikationen som testades och webbservern på sina egna lokala datorer på grund av de begränsningar som infördes av samma ursprungspolicy. Så en annan ThoughtWorks ingenjör, Paul Hammant , bestämde sig för att skapa en server som skulle fungera som en HTTP-proxy för att "lura" webbläsaren att tro att Selen Core och webbapplikationen som testas kommer från samma domän. Detta system blev känt som Selenium Remote Control eller Selen 1 .

Födelse av Selen Grid

Selenium Grid utvecklades av Patrick Lightbody för att tillgodose behovet av att minimera testkörningstider så mycket som möjligt. Inledningsvis kallade han systemet " Hosted QA ." Det var kapabelt att fånga webbläsarens skärmdumpar under betydande steg, och även att skicka ut Selenium-kommandon till olika maskiner samtidigt.

Födelse av Selen IDE

Shinya Kasatani från Japan skapade Selenium IDE , ett Firefox-tillägg som kan automatisera webbläsaren via en inspelnings- och uppspelningsfunktion. Han kom på denna idé för att ytterligare öka hastigheten när det gäller att skapa testfall. Han donerade Selen IDE till Selenium Project 2006 .

Födelse av WebDriver

Simon Stewart skapade WebDriver cirka 2006 när webbläsare och webbapplikationer blev kraftfullare och mer restriktiva med JavaScript-program som Selenium Core. Det var det första testramverket på flera plattformar som kunde styra webbläsaren från OS-nivån.

Födelse av selen 2


Under 2008 beslutade hela Selenium Team att slå samman WebDriver och Selenium RC för att bilda ett kraftfullare verktyg som heter Selenium 2 , med WebDriver som kärnan . För närvarande utvecklas Selenium RC fortfarande men bara i underhållsläge. De flesta av Selenium-projektets ansträngningar är nu inriktade på Selenium 2.

Så, varför heter selen?

Namnet Selenium kom från ett skämt som Jason knäckt en gång till sitt lag. Under Seleniums utveckling var ett annat automatiserat testramverk populärt av företaget som heter Mercury Interactive (ja, företaget som ursprungligen skapade QTP innan det förvärvades av HP). Eftersom selen är en välkänd motgift mot kvicksilverförgiftning, föreslog Jason att namnet och hans lagkamrater tog det. Så det är så vi fick kalla denna ram fram till idag.

Kort introduktion Selen IDE

Selenium Integrated Development Environment (IDE) är det enklaste ramverket i Selenium-sviten och är det enklaste att lära sig . Det är ett Firefox-plugin som du kan installera så enkelt som möjligt med andra plugins. Men på grund av sin enkelhet bör Selen IDE endast användas som ett prototypverktyg . Om du vill skapa mer avancerade testfall måste du använda antingen Selenium RC eller WebDriver.

Kort introduktion Selen fjärrkontroll (Selen RC)

Selen RC var länge flaggskeppstestramen för hela Selenium-projektet. Detta är det första automatiserade webbtestverktyget som tillät användare att använda ett programmeringsspråk de föredrar . Från och med version 2.25.0 kan RC stödja följande programmeringsspråk:

  • Java
  • C #
  • PHP
  • Pytonorm
  • Perl
  • Rubin

Kort introduktion WebDriver

WebDriver visar sig vara bättre än både Selen IDE och Selen RC i många aspekter. Det implementerar ett mer modernt och stabilt tillvägagångssätt för att automatisera webbläsarens åtgärder. WebDriver, till skillnad från Selenium RC, förlitar sig inte på JavaScript för Selenium Automation Testing. Den styr webbläsaren genom att direkt kommunicera med den.

De språk som stöds är desamma som i Selenium RC.

  • Java
  • C #
  • PHP
  • Pytonorm
  • Perl
  • Rubin

Selen Grid

Selenium Grid är ett verktyg som används tillsammans med Selenium RC för att köra parallella tester över olika maskiner och olika webbläsare samtidigt. Parallell körning innebär att du kör flera tester samtidigt.

Funktioner:

  • Möjliggör samtidig körning av tester i flera webbläsare och miljöer.
  • Sparar tid enormt.
  • Använder hub-and-nodes- konceptet. Navet fungerar som en central källa för Selen-kommandon till varje nod som är ansluten till den.

Anvisning om webbläsar- och miljöstöd

På grund av deras arkitektoniska skillnader stöder Selenium IDE, Selenium RC och WebDriver olika uppsättningar webbläsare och operativmiljöer.

Selen IDE WebDriver
browser Support Mozilla Firefox Internet Explorer version 6 till 11, både 32 och 64-bitars Microsoft Edge version 12.10240 och senare (delvis stöd för vissa funktioner under utveckling) Firefox 3.0 och senare Google Chrome 12.0. och över Opera 11.5 och senare Android - 2.3 och senare för telefoner och surfplattor (enheter och emulatorer) iOS 3+ för telefoner (enheter och emulatorer) och 3.2+ för surfplattor (enheter och emulatorer) HtmlUnit 2.9 och högre
Operativ system Windows, Mac OS X, Linux Alla operativsystem där webbläsarna ovan kan köras.

Obs: Selenium WebDriver kallas som efterträdaren till Selenium RC som har upphört och officiellt meddelats av SeleniumHQ.

Hur du väljer rätt selenverktyg för ditt behov

Verktyg Varför välja?

Selen IDE

  • Att lära sig mer om koncept för automatiserad testning och Selen, inklusive:
  • Selenes-kommandon som typ, öppna, klicka och vänta, hävda, verifiera etc.
  • Lokaliserare som id, namn, xpath, css-väljare etc.
  • Köra anpassad JavaScript-kod med runScript
  • Exportera testfall i olika format.
  • Att skapa tester med liten eller ingen förkunskaper i programmering.
  • För att skapa enkla testfall och testsviter som du kan exportera senare till RC eller WebDriver.
  • För att testa en webbapplikation endast mot Firefox och Chrome.

Selen RC

  • Att utforma ett test med ett mer uttrycksfullt språk än Selenese
  • För att köra ditt test mot olika webbläsare (förutom HtmlUnit) på olika operativsystem.
  • För att distribuera dina tester i flera miljöer med Selenium Grid.
  • För att testa din ansökan mot en ny webbläsare som stöder JavaScript.
  • Att testa webbapplikationer med komplexa AJAX-baserade scenarier.

WebDriver

  • Att använda ett visst programmeringsspråk vid utformningen av ditt testfall.
  • Att testa applikationer som är rika på AJAX-baserade funktioner.
  • Att utföra tester på HtmlUnit-webbläsaren.
  • Att skapa anpassade testresultat.

Selen Grid

  • Att köra dina Selenium RC-skript i flera webbläsare och operativsystem samtidigt.
  • För att köra en enorm testsvit måste den slutföras så snart som möjligt.

En jämförelse mellan selen och QTP (nu UFT)

Quick Test Professional (QTP) är ett eget automatiserat testverktyg som tidigare ägdes av företaget Mercury Interactive innan det förvärvades av Hewlett-Packard 2006 . Selenium Tool Suite har många fördelar jämfört med QTP som beskrivs nedan -

Fördelar och fördelar med Selen över QTP

Selen QTP
Öppen källkod , gratis att använda och gratis. Kommersiell .
Mycket utdragbar Begränsade tillägg
Kan köra tester över olika webbläsare Kan bara köra tester i Firefox , Internet Explorer och Chrome
Stöder olika operativsystem Kan bara användas i Windows
Stöder mobila enheter QTP stöder testautomatisering av mobilappar (iOS och Android) med HP-lösning som heter - HP Mobile Center
Kan utföra tester medan den webbläsaren minimeras Behöver ha applikationen testad för att vara synlig på skrivbordet
Kan utföra tester parallellt . Kan bara köras parallellt men med Quality Center som återigen är en betald produkt.

Fördelar med QTP jämfört med selen

Fördelar med QTP jämfört med selen
QTP Selen
Kan testa både webb- och skrivbordsapplikationer Kan bara testa webbapplikationer
Levereras med ett inbyggt objektförvar Har inget inbyggt objektförvar
Automatiseras snabbare än Selen eftersom det är en fullfjädrad IDE. Automatiseras i långsammare takt eftersom det inte har en egen IDE och endast IDE från tredje part kan användas för utveckling
Datadriven testning är lättare att utföra eftersom den har inbyggda globala och lokala datatabeller . Datadriven testning är mer besvärlig eftersom du måste lita på programmeringsspråkets funktioner för att ställa in värden för dina testdata
Har åtkomst till kontroller i webbläsaren (t.ex. Favoritfältet, Adressfältet, Bakåt och Framåt-knapparna etc.) Det går inte att komma åt element utanför webbapplikationen som testas
Ger professionell kundsupport Ingen officiell användarsupport erbjuds.
Har inbyggd förmåga att exportera testdata till externa format Har ingen inbyggd förmåga att exportera runtime-data till externa format
Parametreringsstöd är byggt Parametrering kan göras via programmering men är svår att genomföra.
Testrapporter genereras automatiskt Inget native support för att generera test- / bugrapporter.

Även om QTP tydligt har mer avancerade funktioner, uppväger Selen QTP inom tre huvudområden:

  • Kostnad (eftersom Selen är helt gratis)
  • Flexibilitet (på grund av ett antal programmeringsspråk, webbläsare och plattformar som den kan stödja)
  • Parallell testning (något som QTP kan men bara med användning av Quality Center)

Sammanfattning

  • Hela Selenium Software Testing Suite består av fyra komponenter:
  • Selen IDE, ett Firefox-tillägg som du bara kan använda för att skapa relativt enkla testfall och testsviter.
  • Selen fjärrkontroll, även känd som Selen 1, som är det första Selen-verktyget som tillät användare att använda programmeringsspråk för att skapa komplexa tester.
  • WebDriver, det nyare genombrottet som gör att dina testskript kan kommunicera direkt till webbläsaren och därigenom styra det från OS-nivå.
  • Selenium Grid är också ett verktyg som används med Selenium RC för att utföra parallella tester över olika webbläsare och operativsystem.
  • Selen RC och WebDriver slogs samman för att bilda Selen 2.
  • Selen är mer fördelaktigt än QTP när det gäller kostnader och flexibilitet. Det låter dig också köra tester parallellt, till skillnad från i QTP där du bara får köra tester sekventiellt.