Hva er Selenium? Introduksjonsopplæring

⚡ Smart oppsummering

Selenium er et gratis, åpen kildekode-rammeverk for automatisert testing, utviklet for å validere webapplikasjoner på tvers av nettlesere og plattformer ved bruk av flere programmeringsspråk. Det muliggjør robust, effektiv og skalerbar testautomatisering for moderne kvalitetssikringspraksis.

  • Nøkkelprinsipp: Selenium muliggjør automatisert validering av webapplikasjoner på ulike nettlesere og operativsystemer, og støtter språk som Java, C#, Python, Og mer.
  • Verktøypakkestruktur: Selenium inkluderer fire hovedkomponenter – IDE, fjernkontroll, webdriver og grid – som hver dekker ulike automatiseringsbehov.
  • IDE og prototyping: Selenium IDE er en nettleserutvidelse for rask caseoppretting og prototyping, men er best egnet for enkle testscenarioer.
  • Fjernkontrollutvikling: Selenium RC, nå i vedlikeholdsmodus, var det første rammeverket som tillot testskript på flere språk, og løste dermed begrensninger i nettleserpolicyer.
  • WebDriver-implementering: WebDriver kommuniserer direkte med nettlesere, og tilbyr kontroll på operativsystemnivå og overlegen stabilitet for kompleks automatisering.
  • Rutenett for parallellisme: Selenium Grid muliggjør parallell utførelse av tester på tvers av flere maskiner og nettlesere, noe som reduserer testsyklusens varighet drastisk.
  • Støtte for nettlesere og plattformer: Selenium støtter et bredt spekter av nettlesere og operativsystemer, noe som gir uovertruffen fleksibilitet for nettkvalitetssjekk.
  • Virkelighet i verden: Lag bruker Selenium for å akselerere utgivelsessykluser, redusere manuell testing og sikre konsistent brukeropplevelse på tvers av nettlesere, med dokumenterte resultater innen SaaS, CI/CD og funksjonslevering.

hva er selen

Hva er Selenium?

Selenium er et gratis (åpen kildekode) automatisert testrammeverk som brukes til å validere webapplikasjoner på tvers av forskjellige nettlesere og plattformer. Du kan bruke flere programmeringsspråk som Java, C#, Pythonosv for å lage Selenium Testskript. Testing utført ved hjelp av Selenium testverktøy kalles vanligvis Selenium Testing.

Ekspertinnsikt

«Unngå å bruke faste hviletidsforsinkelser i testene dine. Bruk heller eksplisitte ventetider (som WebDriverWait) for å vente på at elementer skal lastes inn. Dette gjør skriptene dine mer pålitelige og raskere, ettersom de reagerer dynamisk på faktiske sideforhold – en viktig beste praksis for studenter overalt, og starter med Selenium».

— Himanshu Sheth, Selenium Expert

👉 Meld deg på gratis live Selenium Testprosjekt

Selenium Tool Suite

Selenium Programvare er ikke bare et enkelt verktøy, men en pakke med programvare, hver del passer til forskjellig Selenium QA-testingsbehovene til en organisasjon. Her er listen over verktøy

  • Selenium Integrert utviklingsmiljø (IDE)
  • Selenium Fjernkontroll (RC)
  • webdriver
  • Selenium Grid

Selenium Tool Suite

For øyeblikket, Selenium RC og WebDriver slås sammen til ett enkelt rammeverk for å danne Selenium 2. Selenium 1, forresten, viser til Selenium RC.

Video Tutorial Selenium

Klikk her. hvis videoen ikke er tilgjengelig

Hvem utviklet Selenium?

Siden Selenium er en samling av forskjellige verktøy, den hadde også forskjellige utviklere. Nedenfor er nøkkelpersonene som ga bemerkelsesverdige bidrag til Selenium Prosjekt

Utviklet Selenium

Primært, Selenium var opprettet av Jason Huggins i 2004Som ingeniør hos ThoughtWorks jobbet han med en webapplikasjon som krevde hyppig testing. Etter å ha innsett at applikasjonens repeterende manuelle testing ble stadig mer ineffektiv, laget han en JavaScript program som automatisk ville kontrollere nettleserens handlinger. Han kalte dette programmet "JavaScriptTestRunner.

Han så potensialet i denne ideen for å hjelpe til med å automatisere andre nettapplikasjoner JavaScriptRunner åpen kildekode, som senere ble omdøpt Selenium Kjerne. For de som er interessert i å utforske andre alternativer for testing av nettapplikasjoner, ta en titt på disse Selenium alternativer.

Problemet med samme opprinnelsespolicy

Samme opprinnelsespolicy forbyr JavaSkriptkode fra tilgang til elementer fra et domene som er forskjellig fra der den ble lansert. For eksempel bruker HTML-koden i www.google.com en JavaSkriptprogrammet «randomScript.js». Den samme opprinnelsespolicyen vil bare tillate randomScript.js å ​​få tilgang til sider på google.com, for eksempel google.com/mail, google.com/login eller google.com/signup. Den kan imidlertid ikke få tilgang til sider fra forskjellige nettsteder som yahoo.com/search eller guru99.com fordi de tilhører forskjellige domener.

Problemet med samme opprinnelsespolicy

Dette er grunnen til at, før Selenium RC, testere trengte for å installere lokale kopier av begge Selenium Kjerne (a JavaSkriptprogram) og webserveren som inneholder webapplikasjonen som testes, slik at de ville tilhøre samme domene

Fødsel av Selenium Fjernkontroll (Selenium RC)

Paul Hammant

Dessverre, testere som bruker Selenium Core måtte installere hele applikasjonen som ble testet og webserveren på sine egne lokale datamaskiner på grunn av restriksjonene som ble pålagt av policy med samme opprinnelseSå en annen ThoughtWorks-ingeniør, Paul Hammant, bestemte seg for å lage en server som skulle fungere som en HTTP-proxy for å «lure» nettleseren til å tro at Selenium Core og nettapplikasjonen som testes kommer fra samme domene. Dette systemet ble kjent som Selenium Fjernkontroll or Selenium 1.

Fødsel av Selenium Grid

Patrick Lightbody

Selenium Grid ble utviklet av Patrick Lightbody for å imøtekomme behovet for å minimere testutførelsestiden så mye som mulig. Han kalte systemet i utgangspunktet «Vertsbasert kvalitetssikring.» Den var i stand til å ta skjermbilder av nettlesere under viktige faser, og også av sender ut Selenium kommandoer til forskjellige maskiner samtidig.

Fødsel av Selenium IDE

Shinya Kasatani

Shinya Kasatani av Japan opprettet Selenium IDEen Firefox og Chrome-utvidelse som kan automatisere nettleseren gjennom en opptaks- og avspillingsfunksjon. Han kom opp med denne ideen for å øke hastigheten på å lage testtilfeller ytterligere. Han donerte Selenium IDE til Selenium Prosjekt i 2006.

Fødsel av WebDriver

Simon Stewart

Simon Stewart opprettet WebDriver ca 2006 da nettlesere og nettapplikasjoner ble kraftigere og mer restriktive med JavaSkriptprogrammer som Selenium Kjerne. Det var det første plattformuavhengige testrammeverket som kunne kontrollere nettleseren på OS-nivå.

Fødsel av Selenium 2

In 2008, Hele Selenium Teamet bestemte seg for å slå sammen WebDriver og Selenium RC for å danne et kraftigere verktøy kalt Selenium 2med WebDriver er kjernen. For tiden, Selenium RC er fortsatt under utvikling, men kun i vedlikeholdsmodus. Mesteparten av Selenium Prosjektets innsats er nå fokusert på Selenium 2.

Så hvorfor navnet Selenium?

Navnet Selenium kom fra en vits som Jason la en gang til laget sitt. I løpet av Seleniumsin utvikling, en annen automatisert testing rammeverket ble populært laget av selskapet som heter Mercury interaktiv (ja, selskapet som opprinnelig laget QTP før det ble kjøpt opp av HP). Siden Selenium er en velkjent motgift mot Mercury forgiftning, foreslo Jason at navnet og lagkameratene hans tok det. Så det var slik vi fikk kalle dette rammeverket frem til i dag.

Hvorfor navnet Selenium

Hva er Selenium IDE?

Selenium Integrert utviklingsmiljø (IDE) er enkleste rammeverket i Selenium suite og er den enkleste å lære. Det er en Chrome og Firefox plugg inn som du kan installere så enkelt du kan med andre plugins. Men på grunn av sin enkelhet, Selenium IDE skal bare brukes som en prototyping verktøy. Hvis du vil lage mer avanserte testcases, må du bruke enten Selenium RC eller WebDriver.

Selenium IDE

Hva er Selenium Fjernkontroll (Selenium RC)?

Selenium RC var rammeverk for flaggskiptesting av helheten Selenium prosjekt over lang tid. Dette er den første automatiserte nettesting verktøy som lar brukere bruke et programmeringsspråk de foretrekker. Fra og med versjon 2.25.0 kan RC støtte følgende programmeringsspråk:

Selenium Fjernkontroll (Selenium RC)

Hva er WebDriver?

WebDriver viser seg å være bedre enn Selenium IDE og Selenium RC i mange aspekter. Den implementerer en mer moderne og stabil tilnærming for å automatisere nettleserens handlinger. WebDriver, i motsetning til Selenium RC, stoler ikke på JavaManus til Selenium Testing av automatisering. Den styrer nettleseren ved å kommunisere direkte med den.

De støttede språkene er de samme som de i Selenium RC.

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

Webdriver

Hva er Selenium Nett?

Selenium Grid er et verktøy brukes sammen med Selenium RC å kjøre parallelle tester på tvers av forskjellige maskiner og forskjellige nettlesere samtidig. Parallell utførelse betyr å kjøre flere tester samtidig.

Egenskaper:

  • muliggjør samtidig gjennomføring av tester in flere nettlesere og miljøer.
  • Sparer tid enormt.
  • Bruker hub-og-noder konsept. Navet fungerer som en sentral kilde til Selenium kommandoer til hver node som er koblet til den.

Selenium Nettleser- og miljøstøtte

På grunn av deres arkitektoniske forskjeller, Selenium SDI, Selenium RC og WebDriver støtter forskjellige sett med nettlesere og driftsmiljøer.

  Selenium IDE webdriver
nettleser~~POS=TRUNC 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 operativsystemer der nettleserne ovenfor kan kjøres.

OBS: Opera Driveren fungerer ikke lenger

Hvordan velge riktig Selenium Verktøy for dine behov

Tool Hvorfor velge?
Selenium IDE
  • For å lære om konsepter om automatisert testing og Selenium, Inkludert:
  • Selenesiske kommandoer som type, open, clickAndWait, assert, verify, etc.
  • Lokatorer som id, navn, xpath, css-velger, etc.
  • Utfører tilpasset JavaSkriptkode ved hjelp av runScript
  • Eksport av testtilfeller i ulike formater.
  • Å lage tester med liten eller ingen forkunnskaper i programmering.
  • For å lage enkle testtilfeller og testsuiter som du senere kan eksportere til RC eller WebDriver.
  • For å teste en nettapplikasjon mot Firefox og kun Chrome.
Selenium RC
  • Å designe en test ved å bruke et mer uttrykksfullt språk enn selenesisk
  • For å kjøre testen mot forskjellige nettlesere (unntatt HtmlUnit) på forskjellige operativsystemer.
  • For å distribuere testene dine på tvers av flere miljøer ved hjelp av Selenium Nett.
  • For å teste applikasjonen din mot en ny nettleser som støtter JavaManus.
  • For å teste webapplikasjoner med komplekse AJAX-baserte scenarier.
webdriver
  • Å bruke et bestemt programmeringsspråk i utformingen av testsaken.
  • For å teste applikasjoner som er rike på AJAX-baserte funksjoner.
  • For å utføre tester på HtmlUnit-nettleseren.
  • For å lage tilpassede testresultater.
Selenium Grid
  • Å kjøre din Selenium RC-skript i flere nettlesere og operativsystemer samtidig.
  • Å kjøre en enorm testsuite som må fullføres på kortest mulig tid.

Real-World Case Studies

🔍 Casestudie 1: Kompatibilitet på tvers av nettlesere for SaaS-dashbord

Scenario

Et programvare-som-en-tjeneste-selskap forberedte seg på å lansere et analysedashbord som måtte fungere konsistent på tvers av moderne nettlesere (Chrome, Firefox, Edge, Safari).

Utfordring

Manuell testing på hver nettleser var tidkrevende, feilutsatt og klarte ikke å holde tritt med raske utviklingsiterasjoner.

Løsning med Selenium

En kvalitetssikringsingeniør opprettet en Selenium Grid oppsett for å kjøre den samme testpakken samtidig på tvers av flere nettlesere og OS-kombinasjoner. Testene ble skrevet i Python ved hjelp av Selenium WebDriver for handlinger som pålogging, diagramfiltrering og dataeksport.

Utfallet

  • Redusert regresjonsvarighet med 80 %.
  • Oppdaget nettleserspesifikke gjengivelsesfeil tidlig (f.eks. feiljusterte grafer i IE).
  • Opprettholdt en konsistent brukeropplevelse for dashbordet på tvers av nettlesermatrisen uten ekstra manuelle sykluser.

⚙️ Casestudie 2: CI/CD-integrasjon for webapp via Selenium + TestNG

Scenario

Et mellomstort webutviklingsfirma er avhengig av en CI/CD-pipeline med Jenkins. De måtte sørge for at kjernebrukerreisene fungerte etter hver kodeendring.

Utfordring

Nye implementeringer avviklet av og til brukerflyter – pålogging, skjemainnsending – og unngikk deteksjon frem til manuell testing på slutten av dagen.

Løsning med Selenium

En tester implementerte en Java-Basert Selenium WebDriver-pakke integrert med TestNGTestene dekket autentisering, profiloppdateringer og søkefunksjonalitet. Disse kjørte på alle Jenkins-bygg, og utnyttet parallell utførelse og nettleserparameterisering.

Utfallet

  • Oppnådde feilsnarvei tilbakemelding: ødelagte flyter ble flagget umiddelbart.
  • Reduserte feil etter utrulling med over 60 %.
  • Gjorde det mulig for utviklere å løse problemer før de nådde QA-nivået.

🚀 Casestudie 3: Akselerering av funksjonslansering for reiseaggregator

Scenario

En reiseaggregatorplattform trengte å lansere en oppdatert funksjon for flybestilling. Manuelle regresjonstester på tvers av over 10 sider tok flere dager og blokkerte lanseringen.

Utfordring

Presset for å redusere tiden til markedet kunne ikke overgå manuelle testsykluser, noe som risikerte forsinkelser eller lavere kvalitet.

Løsning med Selenium & Sideobjektmodell

En QA-automatiseringsleder introduserte en POM-struktur (Page Object Model) i C#. Selenium WebDriver-skript innkapslet sideelementer og handlinger (søk etter flyvninger, bruk av filtre og betalingssaker). Automatiserte testkjøringer ble utløst hver natt på GitLab CI.

Utfallet

  • Testtiden gikk ned fra 3 dager til bare 4 timer.
  • Gjenbruk av skript på tvers av flere funksjoner reduserer skriptarbeidet med 50 %.
  • Økt tillit: utgivelsen ble sendt etter planen med minimale feilrapporter.

Felles Selenium Utfordringer (og fikser)

Selv om Selenium er kraftig, møter testere ofte utfordringer som kan påvirke pålitelighet og hastighet. Her er noen vanlige utfordringer og hvordan du kan løse dem:

  1. Ustabile tester:
    Tester kan mislykkes tilfeldig på grunn av timing eller nettverksproblemer.
    Fastsette: Bruk eksplisitte ventetider og stabile lokatorer; unngå Thread.sleep().
  2. Dynamiske webelementer:
    Endring av element-ID-er eller XPath-er forårsaker feil av typen «element ikke funnet».
    Fastsette: Bruk relative XPath-er, CSS-selektorer eller dynamisk attributthåndtering.
  3. SyncProblemer med kronisering:
    Elementer lastes inn saktere enn skriptkjøring.
    Fastsette: Implementer WebDriverWait med forventede betingelser.
  4. Uoverensstemmelser på tvers av nettlesere:
    Tester oppfører seg annerledes i Chrome, Firefox, eller Edge.
    Fastsette: Kjør tester på Selenium Rutenett- eller skyplattformer for validering på tvers av nettlesere.
  5. Håndtering av popup-vinduer og varsler:
    Uventede popup-vinduer kan avbryte testflyten.
    Fastsette: Bruk Selenium's Alert-grensesnitt eller prøv å fange blokker for å håndtere dem på en elegant måte.
  6. Vedlikeholdskostnader for testing:
    Hyppige endringer i brukergrensesnittet gjør tester skjøre.
    Fastsette: Ta i bruk Page Object Model (POM) og versjonskontroll for enkle oppdateringer.
  7. Integrasjonsutfordringer:
    CI/CD-pipelines kan mislykkes på grunn av driverproblemer.
    Fastsette: Bruk Selenium Sjef (Selenium 4+) eller WebDriver Manager for å administrere drivere automatisk.

Kort sagt: bro Selenium Problemer stammer fra dårlig synkronisering eller sprø lokatorer – begge deler kan løses gjennom smartere ventetider, modulær design og kontinuerlig vedlikehold.

Spørsmål og svar:

Selenium er et automatiseringsrammeverk med åpen kildekode som brukes til å teste webapplikasjoner på tvers av forskjellige nettlesere og plattformer. Det lar testere simulere brukerinteraksjoner som klikk, skjemainnsendinger og navigasjon ved hjelp av forskjellige programmeringsspråk.

Selenium brukes primært til å automatisere nettleserbasert testing. Det bidrar til å sikre at webapplikasjoner fungerer riktig på tvers av nettlesere, støtter regresjon og funksjonstesting, og integreres enkelt med CI/CD-pipelines for kontinuerlig testing.

Selenium består av fire hovedkomponenter: Selenium IDE (opptaks-/avspillingsverktøy), Selenium RC (utdatert), Selenium webdriver (moderne automatiserings-API), og Selenium Grid (for parallell utførelse av tester på tvers av nettlesere).

De fire typene er: Selenium IDE for opptak av tester, Selenium RC for eldre automatisering, Selenium webdriver for direkte nettleserkontroll, og Selenium Grid for distribuert, parallell testing på tvers av flere nettlesere.

Selenium WebDriver er kjernekomponenten som samhandler direkte med nettlesere ved hjelp av innebygde API-er. Den lar utviklere skrive robuste automatiseringsskript for nettlesere på tvers av språk som Java, Pythonog C#, uten å stole på JavaManus.

Selenium IDE er nybegynnervennlig, og tilbyr opptaks- og avspillingsfunksjonalitet via nettleserutvidelser. webdriver, derimot, er kodebasert, støtter flere språk og tilbyr avansert, skalerbar nettleserautomatisering som er egnet for testrammeverk i den virkelige verden.

Oppsummer dette innlegget med: