Hvad er Selenium? Introduktion Tutorial

⚡ Smart opsummering

Selenium er et gratis, open source-framework for automatiseret testning, der er designet til at validere webapplikationer på tværs af browsere og platforme ved hjælp af flere programmeringssprog. Det muliggør robust, effektiv og skalerbar testautomatisering til moderne QA-praksisser.

  • Nøgleprincip: Selenium muliggør automatiseret validering af webapplikationer på forskellige browsere og operativsystemer og understøtter sprog som f. Java, C#, PythonOg meget mere.
  • Værktøjspakkestruktur: Selenium inkluderer fire hovedkomponenter – IDE, fjernbetjening, webdriver og grid – der hver især adresserer forskellige automatiseringsbehov.
  • IDE og prototypeping: Selenium IDE er en browserudvidelse til hurtig caseoprettelse og prototypeudviklingping, men er bedst egnet til simple testscenarier.
  • Fjernbetjeningsudvikling: Selenium RC, nu i vedligeholdelsestilstand, var det første framework, der tillod testscripts på flere sprog, og løste dermed browserpolitikbegrænsninger.
  • WebDriver-implementering: WebDriver kommunikerer direkte med browsere og tilbyder kontrol på operativsystemniveau og overlegen stabilitet til kompleks automatisering.
  • Gitter for parallelisme: Selenium Grid muliggør parallel udførelse af tests på tværs af flere maskiner og browsere, hvilket drastisk reducerer testcyklussens varighed.
  • Understøttelse af tværbrowsere og platforme: Selenium understøtter en bred vifte af browsere og operativsystemer, hvilket giver uovertruffen fleksibilitet til web QA.
  • Virkning på den virkelige verden: Hold bruger Selenium for at accelerere udgivelsescyklusser, reducere manuel testning og sikre ensartet brugeroplevelse på tværs af browsere, med dokumenterede resultater i SaaS, CI/CD og funktionslevering.

hvad er selen

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.

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

👉 Tilmeld dig gratis live Selenium Test projekt

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 2004Som ingeniør hos ThoughtWorks arbejdede han på en webapplikation, der krævede hyppig testning. Da han indså, at deres applikations gentagne manuelle testning blev mere og mere ineffektiv, skabte han en JavaScript program, der automatisk ville styre 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 JavaScriptkode fra adgang til elementer fra et domæne, der er forskelligt fra hvor det blev lanceret. For eksempel bruger HTML-koden i www.google.com en JavaScriptprogrammet “randomScript.js”. Den samme oprindelsespolitik tillader kun randomScript.js at få adgang til sider inden for 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 JavaScriptprogram) og webserveren, der indeholder den webapplikation, der testes, så de ville tilhøre det samme domæne

Fødsel af Selenium Fjernbetjening (Selenium RC)

Paul Hammant

Desværre bruger testere 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 politik med samme oprindelseSå en anden ThoughtWorks-ingeniør, Paul Hammant, besluttede at oprette en server, der skulle fungere som en HTTP-proxy for at "narre" browseren til at tro, at Selenium Core og webapplikationen, der testes, kommer fra det samme domæne. Dette system blev kendt som Selenium Fjernstyrede vibratorer or Selenium 1.

Fødsel af Selenium Grid

Patrick Lightbody

Selenium Grid er udviklet af Patrick Lightbody at imødekomme behovet for at minimere testudførelsestider så meget som muligt. Han kaldte oprindeligt systemet "Hosted QA." Den var i stand til at tage browserskærmbilleder under vigtige faser, 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 via en optage- og afspilningsfunktion. Han fik denne idé for yderligere at øge hastigheden på oprettelsen af ​​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 det første testframework på tværs af platforme, der kunne styre browseren på OS-niveau.

Fødsel af Selenium 2

In 2008, Hele Selenium Team besluttede at fusionere WebDriver og Selenium RC til at danne et mere kraftfuldt værktøj kaldet Selenium 2, med WebDriver er kernen. I øjeblikket, Selenium RC er stadig under udvikling, 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 rammeværket blev populært lavet af virksomheden kaldet Mercury Interactive (ja, det firma der oprindeligt lavede QTP før det blev opkø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 prototypeping væ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 dine 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.
  • At køre en enorm testsuite, der skal færdiggøres på kortest mulig tid.

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 en 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 er afhængig af en CI/CD-pipeline ved hjælp af JenkinsDe skulle sikre, at de centrale brugerrejser fungerede efter hver kodeændring.

Udfordring

Nye build-implementeringer afbrød lejlighedsvis brugerflows – login, formularindsendelse – escaping detektion 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 build, udnytter 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 og 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.

Fælles Selenium Udfordringer (og rettelser)

Selvom Selenium er kraftfuld, står testere ofte over for udfordringer, der kan påvirke pålidelighed og hastighed. Her er nogle almindelige udfordringer, og hvordan man løser dem:

  1. Ustabile tests:
    Test kan mislykkes tilfældigt på grund af timing eller netværksproblemer.
    Fix: Brug eksplicitte ventetider og stabile lokaliseringspunkter; undgå Thread.sleep().
  2. Dynamiske webelementer:
    Ændring af element-ID'er eller XPaths forårsager fejl af typen "element ikke fundet".
    Fix: Brug relative XPaths, CSS-selektorer eller dynamisk attributhåndtering.
  3. SyncProblemer med kronisering:
    Elementer indlæses langsommere end scriptkørsel.
    Fix: Implementer WebDriverWait med forventede betingelser.
  4. Uoverensstemmelser på tværs af browsere:
    Test opfører sig anderledes i Chrome, Firefox, eller Edge.
    Fix: Kør tests på Selenium Grid- eller cloudplatforme til validering på tværs af browsere.
  5. Håndtering af pop op-vinduer og advarsler:
    Uventede pop op-vinduer kan afbryde testflowet.
    Fix: Brug Selenium's Alert-grænseflade eller try-catch-blokke for at håndtere dem elegant.
  6. Vedligeholdelsesomkostninger for test:
    Hyppige ændringer i brugergrænsefladen gør tests skrøbelige.
    Fix: Brug Page Object Model (POM) og versionskontrol for nemme opdateringer.
  7. Integrationsudfordringer:
    CI/CD-pipelines kan fejle på grund af driverproblemer.
    Fix: Brug Selenium Manager (Selenium 4+) eller WebDriver Manager til automatisk administration af drivere.

Kort sagt: bro Selenium Problemer stammer fra dårlig synkronisering eller skrøbelige lokaliseringsanordninger – begge dele kan løses gennem smartere ventetider, modulært design og kontinuerlig vedligeholdelse.

Ofte stillede spørgsmål:

Selenium er et open source-automatiseringsframework, der bruges til at teste webapplikationer på tværs af forskellige browsere og platforme. Det giver testere mulighed for at simulere brugerinteraktioner som klik, formularindsendelser og navigation ved hjælp af forskellige programmeringssprog.

Selenium bruges primært til at automatisere browserbaseret testning. Det hjælper med at sikre, at webapplikationer fungerer korrekt på tværs af browsere, understøtter regression og funktionel testning og integreres nemt med CI/CD-pipelines til kontinuerlig testning.

Selenium består af fire hovedkomponenter: Selenium IDE (optage-/afspilningsværktøj), Selenium RC (udfaset), Selenium webdriver (moderne automatiserings-API) og Selenium Grid (til parallel udførelse af tester på tværs af browsere).

De fire typer er: Selenium IDE til optagelse af prøver, Selenium RC til ældre automatisering, Selenium webdriver til direkte browserkontrol, og Selenium Grid til distribueret, parallel testning på tværs af flere browsere.

Selenium WebDriver er kernekomponenten, der interagerer direkte med browsere ved hjælp af native API'er. Det gør det muligt for udviklere at skrive robuste automatiseringsscripts på tværs af browsere i sprog som f. Java, Pythonog C#, uden at være afhængig af JavaManuskript.

Selenium IDE er begyndervenlig og tilbyder optage- og afspilningsfunktionalitet via browserudvidelser. webdriverer derimod kodebaseret, understøtter flere sprog og leverer avanceret, skalerbar browserautomatisering, der er egnet til testframeworks i den virkelige verden.

Opsummer dette indlæg med: