Hvad er Selenium? Introduktion Tutorial

Hvad er Selenium?

Selenium er en gratis (open source) automatiseret testramme, der bruges til at validere webapplikationer på tværs af forskellige browsere og platforme. Du kan bruge flere programmeringssprog som f.eks Java, C#, Pythonosv. at oprette Selenium Test scripts. Test udført ved hjælp af Selenium testværktøj kaldes normalt Selenium Test.

hvad er selen

Ekspertindsigt

"Undgå at bruge faste dvaleforsinkelser i dine tests. Brug i stedet eksplicitte ventetider (som WebDriverWait) til at vente på, at elementer indlæses. Dette gør dine scripts mere pålidelige og hurtigere, da de reagerer dynamisk på de faktiske sideforhold – en vigtig bedste praksis for studerende overalt, startende med Selenium".

— Himanshu Sheth, Selenium Expert

Selenium Tool Suite

Selenium Software er ikke bare et enkelt værktøj, men en suite af software, som hvert stykke henvender sig til forskelligt Selenium QA-testbehov i en organisation. Her er listen over værktøjer

  • Selenium Integreret udviklingsmiljø (IDE)
  • Selenium Fjernbetjening (RC)
  • webdriver
  • Selenium Grid

Selenium Tool Suite

I øjeblikket, Selenium RC og WebDriver fusioneres til en enkelt ramme til dannelse Selenium 2. Selenium 1 i øvrigt henviser til Selenium RC.

Video Tutorial Selenium

Klik link. hvis videoen ikke er tilgængelig

Hvem udviklede Selenium?

Siden Selenium er en samling af forskellige værktøjer, den havde også forskellige udviklere. Nedenfor er de nøglepersoner, der har ydet bemærkelsesværdige bidrag til Selenium Projekt

Udviklede sig Selenium

Primært, Selenium var skabt af Jason Huggins i 2004. Som ingeniør hos ThoughtWorks arbejdede han på en webapplikation, der krævede hyppige tests. Efter at have indset, at deres applikations gentagne manuelle testning blev stadig mere ineffektiv, skabte han en JavaScript program, der automatisk kontrollerer browserens handlinger. Han kaldte dette program for "JavaScriptTestRunner".

Han så potentialet i denne idé til at hjælpe med at automatisere andre webapplikationer JavaScriptRunner open source, som senere blev omdøbt Selenium Core. For dem, der er interesseret i at udforske andre muligheder for test af webapplikationer, så tag et kig på disse Selenium alternativer.

Problemet med samme oprindelsespolitik

Samme oprindelsespolitik forbyder JavaScript-kode fra adgang til elementer fra et domæne, der er forskelligt fra det sted, hvor det blev lanceret. Eksempelvis bruger HTML-koden i www.google.com en JavaScript-programmet "randomScript.js". Den samme oprindelsespolitik vil kun tillade randomScript.js at få adgang til sider på google.com såsom google.com/mail, google.com/login eller google.com/signup. Den kan dog ikke få adgang til sider fra forskellige websteder såsom yahoo.com/search eller guru99.com, fordi de tilhører forskellige domæner.

Problemet med samme oprindelsespolitik

Dette er grunden til, at før Selenium RC, testere er nødvendige for at installere lokale kopier af begge Selenium Kerne (a Javascript-program) og webserveren, der indeholder webapplikationen, der testes, så de ville tilhøre det samme domæne

Fødsel af Selenium Fjernbetjening (Selenium RC)

Paul Hammant

Desværre; testere bruger Selenium Core var nødt til at installere hele applikationen under test og webserveren på deres egne lokale computere på grund af begrænsningerne pålagt af samme oprindelsespolitik. Så en anden ThoughtWorks ingeniør, Paul Hammant, besluttede at oprette en server, der vil fungere som en HTTP-proxy for at "narre" browseren til at tro det Selenium Core og webapplikationen, der testes, kommer fra det samme domæne. Dette system blev kendt som Selenium Fjernbetjent sexlegetøj or Selenium 1.

Fødsel af Selenium Grid

Patrick Lightbody

Selenium Grid er udviklet af Patrick Lightbody for at imødekomme behovet for at minimere testudførelsestider så meget som muligt. Han kaldte først systemet for "Hostet QA." Det var i stand til at fange browserskærmbilleder under væsentlige stadier, og også af sender ud Selenium kommandoer til forskellige maskiner samtidigt.

Fødsel af Selenium IDE

Shinya Kasatani

Shinya Kasatani af Japan skabt Selenium IDE, en Firefox og Chrome-udvidelse, der kan automatisere browseren gennem en optage-og-afspilningsfunktion. Han kom op med denne idé for yderligere at øge hastigheden i at skabe testcases. Han donerede Selenium IDE til Selenium Projekt i 2006.

WebDrivers fødsel

Simon Stewart

Simon Stewart oprettet WebDriver ca 2006 da browsere og webapplikationer blev mere kraftfulde og mere restriktive med JavaScript-programmer som Selenium Core. Det var den første testramme på tværs af platforme, der kunne styre browseren fra OS-niveau.

Fødsel af Selenium 2

In 2008, Hele Selenium Team besluttede at fusionere WebDriver og Selenium RC for at danne et mere kraftfuldt værktøj kaldet Selenium 2, med WebDriver er kernen. I øjeblikket, Selenium RC udvikles stadig, men kun i vedligeholdelsestilstand. Det meste af Selenium Projektets indsats er nu fokuseret på Selenium 2.

Så hvorfor navnet Selenium?

Navnet Selenium kom fra en joke, som Jason lavede engang til sit hold. I løbet af Selenium's udvikling, en anden automatiseret test ramme var populær lavet af firmaet kaldet Mercury Interactive (ja, det firma, der oprindeligt lavede QTP, før det blev købt af HP). Siden Selenium er en velkendt modgift mod Mercury forgiftning, foreslog Jason det navn, og hans holdkammerater tog det. Så det var sådan, vi fik kaldet denne ramme op til nutiden.

Hvorfor navnet Selenium

Hvad er Selenium IDE?

Selenium Integrated Development Environment (IDE) er enkleste rammer i Selenium suite og er den nemmeste at lære. Det er en Chrome og Firefox plugin som du kan installere så nemt som du kan med andre plugins. Men på grund af sin enkelhed, Selenium IDE bør kun bruges som en prototypeværktøj. Hvis du vil oprette mere avancerede testcases, skal du bruge enten Selenium RC eller WebDriver.

Selenium IDE

Hvad er Selenium Fjernbetjening (Selenium RC)?

Selenium RC var flagskibstestramme af det hele Selenium projekt i lang tid. Dette er den første automatiserede webtest værktøj der giver brugerne mulighed for at bruge et programmeringssprog, de foretrækker. Fra version 2.25.0 kan RC understøtte følgende programmeringssprog:

Selenium Fjernbetjening (Selenium RC)

Hvad er WebDriver?

WebDriveren viser sig at være bedre end Selenium IDE og Selenium RC i mange aspekter. Den implementerer en mere moderne og stabil tilgang til at automatisere browserens handlinger. WebDriver, i modsætning til Selenium RC, stoler ikke på JavaScript til Selenium Test af automatisering. Den styrer browseren ved at kommunikere direkte med den.

De understøttede sprog er de samme som dem i Selenium RC.

  • Java
  • C#
  • PHP
  • Python
  • Perl
  • Rubin

Webdriver

Hvad er Selenium Gitter?

Selenium Grid er et værktøj bruges sammen med Selenium RC at køre parallelle tests på tværs af forskellige maskiner og forskellige browsere på samme tid. Parallel udførelse betyder at køre flere test på én gang.

Funktioner:

  • gør det muligt for samtidig afvikling af tests in flere browsere og miljøer.
  • Sparer tid enormt.
  • Bruger hub-og-noder koncept. Navet fungerer som en central kilde til Selenium kommandoer til hver knude, der er forbundet til den.

Selenium Browser og miljøsupport

På grund af deres arkitektoniske forskelle, Selenium SDI, Selenium RC og WebDriver understøtter forskellige sæt browsere og driftsmiljøer.

  Selenium IDE webdriver
Browser Support Mozilla Firefox og Chrome

Google Chrome 12 +

Firefox

Internet Explorer 7+ og Edge

Safari, 

HtmlUnit og PhantomUnit

Operating System Windows, Mac OS X, Linux Alle styresystemer, hvor ovenstående browsere kan køre.

Bemærk: Opera Driveren virker ikke længere

Sådan vælger du det rigtige Selenium Værktøj til dit behov

Værktøj Hvorfor vælge?
Selenium IDE
  • At lære om begreber om automatiseret test og Selenium, Herunder:
  • Selenesiske kommandoer såsom type, open, clickAndWait, assert, verify osv.
  • Locatorer såsom id, navn, xpath, css-vælger osv.
  • Udførelse tilpasset JavaScript-kode ved hjælp af runScript
  • Eksport af testcases i forskellige formater.
  • At lave test med ringe eller ingen forkundskaber i programmering.
  • At skabe simple testcases og testsuiter, som du senere kan eksportere til RC eller WebDriver.
  • Til at teste en webapplikation mod Firefox og kun Chrome.
Selenium RC
  • At designe en test med et mere udtryksfuldt sprog end selenesisk
  • At køre din test mod forskellige browsere (undtagen HtmlUnit) på forskellige operativsystemer.
  • At implementere dine test på tværs af flere miljøer ved hjælp af Selenium Gitter.
  • For at teste din applikation mod en ny browser, der understøtter JavaManuskript.
  • Til at teste webapplikationer med komplekse AJAX-baserede scenarier.
webdriver
  • At bruge et bestemt programmeringssprog til at designe din testcase.
  • For at teste applikationer, der er rige på AJAX-baserede funktionaliteter.
  • For at udføre test på HtmlUnit-browseren.
  • At skabe tilpassede testresultater.
Selenium Grid
  • At køre din Selenium RC-scripts i flere browsere og operativsystemer samtidigt.
  • For at køre en enorm testpakke, skal den gennemføres hurtigst muligt.

En sammenligning mellem Selenium og QTP (nu UFT)

Quick Test Professional (QTP) er et proprietært automatiseret testværktøj, der tidligere var ejet af virksomheden Mercury Interactive før Hewlett-Packard erhvervede det i 2006. Dens senere ejer er MicroFocus, og værktøjet er omdøbt til UFT one. De Selenium Tool Suite har mange fordele i forhold til  QTP som beskrevet nedenfor -

Fordele og fordele ved Selenium over QTP

Selenium QTP
Open source, gratis at brugeog gratis. Kommerciel.
Meget udvidelig Begrænsede tilføjelser
Kan køre test på tværs forskellige browsere Kan kun køre test i Firefox, Internet Explorer og Chrome
Understøtter forskellige operativsystemer Kan kun bruges i Windows
Understøtter mobilenheder QTP understøtter mobil app test automatisering (iOS & Android) ved hjælp af HP-løsning kaldet – HP Mobile Center
Kan udføre tests mens og browser er minimeret Skal have applikationen under test for at være synlig på skrivebordet
Kan udføre tests parallelt. Kan kun udføres parallelt, men ved hjælp af Quality Center, som igen er et betalt produkt.

Real-World Case Studies

🔍 Casestudie 1: Kompatibilitet på tværs af browsere for SaaS-dashboard

Scenario

En software-as-a-service-virksomhed forberedte sig på at udgive et analysedashboard, der skulle fungere ensartet på tværs af moderne browsere (Chrome, Firefox, Edge, Safari).

Udfordring

Manuel testning på hver browser var tidskrævende, fejlbehæftet og kunne ikke holde trit med de hurtige udviklingsiterationer.

Løsning med Selenium

En QA-ingeniør oprettede en Selenium Grid opsætning til at udføre den samme testsuite samtidigt på tværs af flere browsere og OS-kombinationer. Testene blev udarbejdet i Python ved brug af Selenium WebDriver til handlinger som login, diagramfiltrering og dataeksport.

Resultat

  • Reduceret regressionsvarighed med 80 %.
  • Opdagede browserspecifikke renderingsfejl tidligt (f.eks. forkert justerede grafer i IE).
  • Opretholdt ensartet dashboard-brugeroplevelse på tværs af browsermatricen uden ekstra manuelle cyklusser.

⚙️ Casestudie 2: CI/CD-integration til webapp via Selenium + TestNG

Scenario

Et mellemstort webudviklingsfirma bruger en CI/CD-pipeline ved hjælp af Jenkins. De skulle sikre, at de centrale brugerrejser fungerede efter hver kodeændring.

Udfordring

Nye build-implementeringer afbrød lejlighedsvis brugerflows – login, formularindsendelse – og blev ikke detekteret indtil manuel testning ved dagens afslutning.

Løsning med Selenium

En tester implementerede en Java-baseret Selenium WebDriver-suite integreret med TestNGTestene dækkede godkendelse, profilopdateringer og søgefunktioner. Disse kørte på alle Jenkins-builds og udnyttede parallel udførelse og browserparametrisering.

Resultat

  • Opnåede fejlfri feedback: afbrudte flows blev markeret med det samme.
  • Reducerede fejl efter implementering med over 60 %.
  • Gav udviklere mulighed for at løse problemer, før de nåede QA.

🚀 Casestudie 3: Acceleration af funktionsudgivelse til Travel Aggregator

Scenario

En rejseaggregatorplatform skulle udgive en opdateret flybookingfunktion. Manuelle regressionstests på tværs af over 10 sider tog dage og blokerede udgivelsen.

Udfordring

Presset for at reducere time-to-market kunne ikke overgå manuelle testcyklusser, hvilket ville medføre risiko for forsinkelser eller lavere kvalitet.

Løsning med Selenium & Sideobjektmodel

En QA-automatiseringsleder introducerede en Page Object Model (POM)-struktur i C#. Selenium WebDriver-scripts indkapslede sideelementer og handlinger (søgning efter flyvninger, anvendelse af filtre, betalingssager). Automatiserede testkørsler blev udløst hver nat på GitLab CI.

Resultat

  • Testtiden faldt fra 3 dage til kun 4 timer.
  • Genbrug af scripts på tværs af flere funktioner reducerer scriptindsatsen med 50 %.
  • Tilliden øgedes: udgivelsen blev sendt til tiden med minimale fejlrapporter.

Fordele ved QTP over Selenium

QTP Selenium
Kan teste både web- og desktop-applikationer Kan kun teste webapplikationer
Leveres med en indbygget objektlager Har ikke noget indbygget objektlager
Automatiserer hurtigere end Selenium fordi det er en fuldt udstyret IDE. Automatiserer i en langsommere hastighed, fordi den ikke har en indbygget IDE, og kun tredjeparts IDE kan bruges til udvikling.
Datadrevet test er nemmere at udføre pga den har indbyggede globale og lokale datatabeller. Datadrevet test er mere besværligt, da du er nødt til at stole på programmeringssprogets muligheder for at indstille værdier for dine testdata
Kan få adgang til kontroller i browseren(såsom favoritlinjen, adresselinjen, knapperne Tilbage og Frem, osv.) Kan ikke få adgang til elementer uden for webapplikationen, der testes
Giver professionel kunde support Der tilbydes ingen officiel brugersupport.
Har indfødte evner til eksportere testdata i eksterne formater Har ingen indbygget evne til at eksportere runtime-data til eksterne formater
Parametriseringsunderstøttelse er bygget Parametrisering kan udføres via programmering, men er vanskelig at implementere.
Testrapporter genereres automatisk Ingen indbygget support til at generere test-/fejlrapporter.

Selvom QTP klart har mere avancerede muligheder, Selenium opvejer QTP på tre hovedområder:

  • Pris(fordi Selenium er helt gratis)
  • Fleksibilitet(på grund af en række programmeringssprog, browsere og platforme, den kan understøtte)
  • Parallel test(noget som QTP er i stand til, men kun med brug af Quality Center)

Resumé

  • Hele Selenium Software Testing Suite består af fire komponenter:
  • Selenium IDE, en Firefox og chrome add-on, som du kun kan bruge til at skabe relativt simple testcases og testsuiter.
  • Selenium Fjernbetjening, også kendt som Selenium 1, er den første Selenium værktøj, der tillod brugere at bruge programmeringssprog til at skabe komplekse tests.
  • WebDriver, er det nyere gennembrud, der gør det muligt for dine testscripts at kommunikere direkte til browseren og derved styre den fra OS-niveau.
  • Selenium Grid er også et værktøj der bruges med Selenium RC til at udføre parallelle test på tværs af forskellige browsere og operativsystemer.
  • Selenium RC og WebDriver blev slået sammen til form Selenium 2.
  • Selenium er mere fordelagtig end Microfocus UFT One med hensyn til omkostninger og fleksibilitet.