Hva er Selenium? Introduksjonsopplæring

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.

hva er selen

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

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 2004. Som ingeniør hos ThoughtWorks jobbet han med en nettapplikasjon som krevde hyppig testing. Etter å ha innsett at applikasjonens repeterende manuelle testing ble stadig mer ineffektiv, opprettet han en JavaScript program som automatisk kontrollerer 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 det ble lansert. Eksempel, HTML-koden i www.google.com bruker en JavaSkriptprogrammet "randomScript.js". De samme opprinnelsesretningslinjene 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 nettapplikasjonen som testes, slik at de vil 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 samme opprinnelsespolitikk. Så en annen ThoughtWorks ingeniør, Paul Hammant, bestemte seg for å lage en server som vil fungere som en HTTP-proxy for å "lure" nettleseren til å tro det 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 å møte behovet for å minimere testgjennomføringstidene så mye som mulig. Han kalte først systemet "Vert QA." Den var i stand til å ta nettleserskjermbilder under betydelige stadier, 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 på denne ideen for å øke hastigheten ytterligere i å lage testcaser. 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 testrammeverket på tvers av plattformer som kunne kontrollere nettleseren fra 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 bare i vedlikeholdsmodus. Det meste 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 var populært laget av selskapet kalt 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 ditt 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.
  • For å kjøre en enorm testpakke, må den fullføres så raskt som mulig.

En sammenligning mellom Selenium og QTP (nå UFT)

Quick Test Professional (QTP) er et proprietært automatisert testverktøy som tidligere var eid av selskapet Mercury interaktiv før Hewlett-Packard kjøpte den i 2006. Dens senere eier er MicroFocus og verktøyet er omdøpt til UFT one. De Selenium Tool Suite har mange fordeler fremfor  QTP som beskrevet nedenfor –

Fordeler og fordeler med Selenium over QTP

Selenium QTP
Åpen kilde, gratis å brukeog gratis. Næringseiendom.
Meget tett Begrensede tillegg
Kan kjøre tester på tvers forskjellige nettlesere Kan kun kjøre tester i Firefox, Internet Explorer og Chrome
Støtter ulike operativsystemer Kan kun brukes i Windows
Støtter håndholdte enheter QTP støtter testautomatisering av mobilapper (iOS og Android) ved hjelp av HP-løsning kalt – HP Mobile Center
Kan utføre tester mens de nettleseren er minimert Må ha applikasjonen under test for å være synlig på skrivebordet
Kan utføre tester parallelt. Kan kun kjøres parallelt, men bruker Quality Center som igjen er et betalt produkt.

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 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, 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.

Fordeler med QTP over Selenium

QTP Selenium
Kan teste både web- og skrivebordsapplikasjoner Kan kun teste webapplikasjoner
Leveres med en innebygd objektlager Har ikke noe innebygd objektlager
Automatiserer raskere enn Selenium fordi det er en fullt utstyrt IDE. Automatiserer med en langsommere hastighet fordi den ikke har en innebygd IDE, og bare tredjeparts IDE kan brukes til utvikling.
Datadrevet testing er lettere å utføre fordi den har innebygde globale og lokale datatabeller. Datadrevet testing er mer tungvint siden du må stole på programmeringsspråkets muligheter for å sette verdier for testdataene dine
Kan få tilgang til kontroller i nettleseren(slik som favorittlinjen, adresselinjen, tilbake- og fremover-knappene osv.) Får ikke tilgang til elementer utenfor nettapplikasjonen som testes
Gir profesjonelt Kunde støtte Ingen offisiell brukerstøtte tilbys.
Har innfødt evne til eksportere testdata til eksterne formater Har ingen egen evne til å eksportere kjøretidsdata til eksterne formater
Parameteriseringsstøtte er bygget Parametrisering kan gjøres via programmering, men er vanskelig å implementere.
Testrapporter genereres automatisk Ingen innebygd støtte for å generere test-/feilrapporter.

Selv om QTP tydeligvis har mer avanserte funksjoner, Selenium oppveier QTP på tre hovedområder:

  • Kostnad(fordi Selenium er helt gratis)
  • Fleksibilitet (på grunn av en rekke programmeringsspråk, nettlesere og plattformer den kan støtte)
  • Parallell testing(noe som QTP er i stand til, men bare med bruk av Quality Center)

Sammendrag

  • Hele Selenium Software Testing Suite består av fire komponenter:
  • Selenium IDE, en Firefox og chrome-tillegg som du bare kan bruke til å lage relativt enkle testtilfeller og testsuiter.
  • Selenium Fjernkontroll, også kjent som Selenium 1, er den første Selenium verktøy som tillot brukere å bruke programmeringsspråk til å lage komplekse tester.
  • WebDriver, er det nyere gjennombruddet som lar testskriptene dine kommunisere direkte til nettleseren, og dermed kontrollere den fra OS-nivå.
  • Selenium Grid er også et verktøy som brukes med Selenium RC for å utføre parallelle tester på tvers av forskjellige nettlesere og operativsystemer.
  • Selenium RC og WebDriver ble slått sammen til form Selenium 2.
  • Selenium er mer fordelaktig enn Microfocus UFT One når det gjelder kostnader og fleksibilitet.