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.
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».
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
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
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.
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)
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
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 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 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.
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.
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:
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
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 |
|
Selenium RC |
|
webdriver |
|
Selenium Grid |
|
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.