Vad är Selenium? Introduktion Handledning

⚡ Smart sammanfattning

Selenium är ett kostnadsfritt, automatiserat testramverk med öppen källkod, utformat för att validera webbapplikationer över webbläsare och plattformar med hjälp av flera programmeringsspråk. Det möjliggör robust, effektiv och skalbar testautomatisering för moderna kvalitetssäkringsmetoder.

  • Nyckelprincip: Selenium underlättar automatiserad validering av webbapplikationer på olika webbläsare och operativsystem, med stöd för språk som Java, C#, PythonOch mycket mer.
  • Verktygssvitens struktur: Selenium innehåller fyra huvudkomponenter – IDE, fjärrkontroll, webbdrivrutin och nät – som var och en tillgodoser specifika automatiseringsbehov.
  • IDE och prototypping: Selenium IDE är ett webbläsartillägg för snabb skapande av ärenden och prototyperping, men passar bäst för enkla testscenarier.
  • Fjärrkontrollens utveckling: Selenium RC, nu i underhållsläge, var det första ramverket som tillät testskript på flera språk, vilket löste begränsningar i webbläsarpolicyer.
  • WebDriver-implementering: WebDriver kommunicerar direkt med webbläsare och erbjuder kontroll på operativsystemnivå och överlägsen stabilitet för komplex automatisering.
  • Rutnät för parallellism: Selenium Grid möjliggör parallell körning av tester på flera maskiner och webbläsare, vilket drastiskt minskar testcykelns längd.
  • Stöd för flera webbläsare och plattformar: Selenium stöder ett brett utbud av webbläsare och operativsystem, vilket ger oöverträffad flexibilitet för webbkvalitetssäkring.
  • Effekter på den verkliga världen: Lag använder Selenium för att accelerera lanseringscykler, minska manuell testning och säkerställa enhetlig användarupplevelse i alla webbläsare, med bevisade resultat inom SaaS, CI/CD och funktionsleverans.

vad är selen

Vad är Selenium?

Selenium är ett gratis (öppen källkod) automatiserat testramverk som används för att validera webbapplikationer över olika webbläsare och plattformar. Du kan använda flera programmeringsspråk som Java, C#, Python, etc för att skapa Selenium Testskript. Testning gjord med hjälp av Selenium testverktyg brukar kallas Selenium Testning.

Expertinsikter

"Undvik att använda fasta vilolägesfördröjningar i dina tester. Använd istället explicita väntetider (som WebDriverWait) för att vänta på att element ska laddas. Detta gör dina skript mer tillförlitliga och snabbare, eftersom de reagerar dynamiskt på faktiska sidförhållanden – en viktig bästa praxis för studenter överallt, med början i Selenium. "

— Himanshu Sheth, Selenium Expert

👉 Registrera dig för gratis livesändning Selenium Testprojekt

Selenium Tool Suite

Selenium Mjukvara är inte bara ett enda verktyg utan en svit av mjukvara, varje del tillgodoser olika Selenium QA-testningsbehov hos en organisation. Här är listan över verktyg

  • Selenium Integrated Development Environment (IDE)
  • Selenium Fjärrkontroll (RC)
  • webbdrivrutin
  • Selenium Rutnät

Selenium Tool Suite

Just nu, Selenium RC och WebDriver slås samman till ett enda ramverk för att bildas Selenium 2. Selenium 1 hänvisar för övrigt till Selenium RC.

Video Tutorial Selenium

Klicka här. om videon inte är tillgänglig

Vem utvecklade Selenium?

Eftersom Selenium är en samling av olika verktyg, den hade också olika utvecklare. Nedan är nyckelpersonerna som gjort betydande bidrag till Selenium Projekt

Tagit fram Selenium

Primärt, Selenium var skapad av Jason Huggins 2004Som ingenjör på ThoughtWorks arbetade han med en webbapplikation som krävde frekvent testning. Efter att ha insett att deras applikations repetitiva manuella testning blev alltmer ineffektiv skapade han en JavaScript program som automatiskt skulle styra webbläsarens handlingar. Han döpte detta program till "JavaScriptTestRunner.

Han såg potential i denna idé att hjälpa till att automatisera andra webbapplikationer JavaScriptRunner öppen källkod, som senare döptes om Selenium Kärna. För dem som är intresserade av att utforska andra alternativ för testning av webbapplikationer, ta en titt på dessa Selenium alternativ.

Problem med samma ursprungspolicy

Samma ursprungspolicy förbjuder JavaSkriptkod från att komma åt element från en domän som skiljer sig från där den lanserades. Till exempel använder HTML-koden i www.google.com en JavaSkriptprogrammet "randomScript.js". Samma ursprungspolicy tillåter endast randomScript.js åtkomst till sidor inom google.com, till exempel google.com/mail, google.com/login eller google.com/signup. Den kan dock inte komma åt sidor från olika webbplatser som yahoo.com/search eller guru99.com eftersom de tillhör olika domäner.

Problem med samma ursprungspolicy

Detta är anledningen till att, innan Selenium RC, testare behövs för att installera lokala kopior av båda Selenium Kärna (a JavaSkriptprogram) och webbservern som innehåller webbapplikationen som testas, så de skulle tillhöra samma domän

Födelse av Selenium Fjärrkontroll (Selenium RC)

Paul Hammant

Tyvärr, testare som använder Selenium Core var tvungen att installera hela applikationen som testades och webbservern på sina egna lokala datorer på grund av begränsningarna som infördes av policy med samma ursprungSå en annan ThoughtWorks-ingenjör, Paul Hammant, bestämde sig för att skapa en server som skulle fungera som en HTTP-proxy för att "lura" webbläsaren att tro att Selenium Core och webbapplikationen som testas kommer från samma domän. Detta system blev känt som Selenium Fjärrstyrning or Selenium 1.

Födelse av Selenium Rutnät

Patrick Lightbody

Selenium Grid utvecklades av Patrick Lightbody för att tillgodose behovet av att minimera testkörningstider så mycket som möjligt. Han kallade initialt systemet "Värdbaserad kvalitetssäkring." Den kunde ta skärmdumpar från webbläsaren under viktiga skeden, och även av skickar ut Selenium kommandon till olika maskiner samtidigt.

Födelse av Selenium IDE

Shinya Kasatani

Shinya Kasatani av Japan skapat Selenium IDE, Firefox och Chrome-tillägg som kan automatisera webbläsaren genom en inspelnings- och uppspelningsfunktion. Han kom på den här idén för att ytterligare öka hastigheten på att skapa testfall. Han donerade Selenium IDE till Selenium Projekt in 2006.

WebDrivers födelse

Simon Stewart

Simon Stewart skapade WebDriver ca 2006 när webbläsare och webbapplikationer blev kraftfullare och mer restriktiva med JavaSkriptprogram som Selenium Kärna. Det var det första plattformsoberoende testramverket som kunde styra webbläsaren på operativsystemnivå.

Födelse av Selenium 2

In 2008, Hela Selenium Team beslutade att slå samman WebDriver och Selenium RC för att bilda ett kraftfullare verktyg som kallas Selenium 2, med WebDriver är kärnan. För närvarande, Selenium RC utvecklas fortfarande, men endast i underhållsläge. De flesta av Selenium Projektets insatser är nu fokuserade på Selenium 2.

Så varför namnet Selenium?

Namnet Selenium kom från ett skämt som Jason drog en gång för sitt team. Under Seleniums utveckling, en annan automatiserad testning ramverket tillverkades populärt av företaget som heter Mercury Interactive (ja, företaget som ursprungligen tillverkade QTP innan det förvärvades av HP). Sedan Selenium är ett välkänt motgift mot Mercury förgiftning, föreslog Jason det namnet och hans lagkamrater tog det. Så det var så vi fick kalla detta ramverk fram till nutid.

Varför namnet Selenium

Vad är Selenium IDE?

Selenium Integrated Development Environment (IDE) är den enklaste ram i Selenium svit och är den lättaste att lära sig. Det är ett Chrome och Firefox plugin som du kan installera så enkelt du kan med andra plugins. Men på grund av sin enkelhet, Selenium IDE bör endast användas som en prototypping verktyg. Om du vill skapa mer avancerade testfall måste du använda antingen Selenium RC eller WebDriver.

Selenium IDE

Vad är Selenium Fjärrkontroll (Selenium RC)?

Selenium RC var ramverk för flaggskeppstestning av helheten Selenium projekt under lång tid. Detta är den första automatiserade webbtestning verktyg som tillåter användare att använda ett programmeringsspråk de föredrar. Från och med version 2.25.0 kan RC stödja följande programmeringsspråk:

Selenium Fjärrkontroll (Selenium RC)

Vad är WebDriver?

WebDriver visar sig vara bättre än Selenium IDE och Selenium RC i många aspekter. Den implementerar ett mer modernt och stabilt tillvägagångssätt för att automatisera webbläsarens åtgärder. WebDriver, till skillnad från Selenium RC, litar inte på JavaManus för Selenium Automationstestning. Den styr webbläsaren genom att direkt kommunicera med den.

De språk som stöds är desamma som de i Selenium RC.

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

Webdriver

Vad är Selenium Rutnät?

Selenium Grid är ett verktyg används tillsammans med Selenium RC att köra parallella tester på olika maskiner och olika webbläsare samtidigt. Parallell exekvering innebär att köra flera tester samtidigt.

Funktioner:

  • möjliggör simultan körning av tester in flera webbläsare och miljöer.
  • Sparar tid enormt.
  • Använder nav-och-noder begrepp. Navet fungerar som en central källa till Selenium kommandon till varje nod som är ansluten till den.

Selenium Webbläsare och miljöstöd

På grund av deras arkitektoniska skillnader, Selenium SDI, Selenium RC och WebDriver stöder olika uppsättningar webbläsare och operativsystem.

  Selenium IDE webbdrivrutin
browser Support Mozilla Firefox och Chrome Google Chrome 12+
Firefox
Internet Explorer 7+ och Edge
Safari,
HtmlUnit och PhantomUnit
Operating System Windows, Mac OS X, Linux Alla operativsystem där webbläsarna ovan kan köras.

Obs: Opera Drivrutinen fungerar inte längre

Hur man väljer rätt Selenium Verktyg för dina behov

Verktyget Varför välja?
Selenium IDE
  • Att lära sig om koncept för automatiserad testning och Selenium, Inklusive:
  • Selenesiska kommandon som typ, öppna, clickAndWait, hävda, verifiera, etc.
  • Lokaliserare som id, namn, xpath, css selector, etc.
  • Utförande anpassat JavaSkriptkod med runScript
  • Exportera testfall i olika format.
  • Att skapa tester med små eller inga förkunskaper i programmering.
  • För att skapa enkla testfall och testsviter som du senare kan exportera till RC eller WebDriver.
  • Att testa en webbapplikation mot Firefox och endast Chrome.
Selenium RC
  • Att utforma ett test med ett mer uttrycksfullt språk än selenska
  • För att köra ditt test mot olika webbläsare (förutom HtmlUnit) på olika operativsystem.
  • För att distribuera dina tester i flera miljöer med hjälp av Selenium Rutnät.
  • För att testa din applikation mot en ny webbläsare som stöder JavaManus.
  • För att testa webbapplikationer med komplexa AJAX-baserade scenarier.
webbdrivrutin
  • Att använda ett visst programmeringsspråk för att utforma ditt testfall.
  • För att testa applikationer som är rika på AJAX-baserade funktioner.
  • För att utföra tester på HtmlUnit-webbläsaren.
  • För att skapa anpassade testresultat.
Selenium Rutnät
  • Att köra din Selenium RC-skript i flera webbläsare och operativsystem samtidigt.
  • Att köra en enorm testsvit som måste slutföras på kortast möjliga tid.

Real-World Fallstudier

🔍 Fallstudie 1: Kompatibilitet mellan webbläsare för SaaS-instrumentpanelen

Scenario

Ett företag som erbjuder programvara som en tjänst förberedde sig för att släppa en analysinstrumentpanel som behövde fungera konsekvent i moderna webbläsare (Chrome, Firefox, Edge, Safari).

Utmaning

Manuell testning på varje webbläsare var tidskrävande, felbenägen och kunde inte hålla jämna steg med snabba utvecklingsiterationer.

Lösning med Selenium

En kvalitetssäkringsingenjör skapade en Selenium Rutnät konfigurerad för att köra samma testsvit samtidigt i flera webbläsare och operativsystemkombinationer. Testerna skapades i Python med hjälp av Selenium WebDriver för åtgärder som inloggning, diagramfiltrering och dataexport.

Resultat

  • Minskad regressionsvaraktighet med 80 %.
  • Upptäckte webbläsarspecifika renderingsfel tidigt (t.ex. feljusterade grafer i IE).
  • Bibehöll en konsekvent dashboard-användarupplevelse i hela webbläsarmatrisen utan extra manuella cykler.

⚙️ Fallstudie 2: CI/CD-integration för webbapp via Selenium + TestNG

Scenario

Ett medelstort webbutvecklingsföretag förlitar sig på en CI/CD-pipeline med hjälp av JenkinsDe behövde säkerställa att användarnas kärnresor fungerade efter varje kodändring.

Utmaning

Nybyggda installationer avbröt ibland användarflöden – inloggning, formulärinlämning – escaping detektion fram till manuell testning vid dagens slut.

Lösning med Selenium

En testare implementerade en Java-Baserade Selenium WebDriver-sviten integrerad med TestNGTesterna omfattade autentisering, profiluppdateringar och sökfunktioner. Dessa kördes på alla Jenkins bygga, utnyttja parallell exekvering och webbläsarparametrisering.

Resultat

  • Uppnådde felsnabb feedback: trasiga flöden flaggades omedelbart.
  • Minskade buggar efter driftsättning med över 60 %.
  • Gjorde det möjligt för utvecklare att åtgärda problem innan de nådde QA.

🚀 Fallstudie 3: Snabbare funktionslansering för Travel Aggregator

Scenario

En plattform för reseaggregatorer behövde lansera en omarbetad funktion för flygbokning. Manuella regressionstester över 10+ sidor tog dagar och blockerade lanseringen.

Utmaning

Pressen att minska tiden till marknaden kunde inte överstiga manuella testcykler, vilket riskerade förseningar eller lägre kvalitet.

Lösning med Selenium & Sidobjektmodell

En QA-automationschef introducerade en POM-struktur (Page Object Model) i C#. Selenium WebDriver-skript inkapslade sidelement och åtgärder (sök efter flygningar, tillämpa filter och betalningsärenden). Automatiserade testkörningar utlöstes varje natt på GitLab CI.

Resultat

  • Testtiden minskade från 3 dagar till bara 4 timmar.
  • Återanvändning av skript över flera funktioner minskar skriptarbetet med 50 %.
  • Ökat förtroende: utgåvan levererades enligt schema med minimala buggrapporter.

Gemensam Selenium Utmaningar (och korrigeringar)

Även om Selenium är kraftfull, testare möter ofta utmaningar som kan påverka tillförlitlighet och hastighet. Här är några vanliga problem och hur man åtgärdar dem:

  1. Ojämna tester:
    Tester kan misslyckas slumpmässigt på grund av timing- eller nätverksproblem.
    Fixera: Använd tydliga väntetider och stabila positioner; undvik Thread.sleep().
  2. Dynamiska webbelement:
    Att ändra element-ID:n eller XPaths orsakar fel av typen element-not-found (element-not-found).
    Fixera: Använd relativa XPaths, CSS-väljare eller dynamisk attributhantering.
  3. SyncProblem med kronisering:
    Element laddas långsammare än skriptkörning.
    Fixera: Implementera WebDriverWait med förväntade villkor.
  4. Inkonsekvenser mellan webbläsare:
    Tester beter sig annorlunda i Chrome, Firefox, eller Edge.
    Fixera: Kör tester på Selenium Grid- eller molnplattformar för validering mellan webbläsare.
  5. Hantera popup-fönster och varningar:
    Oväntade popup-fönster kan avbryta testflödet.
    Fixera: Använda Selenium's Alert-gränssnitt eller försök att fånga block för att hantera dem smidigt.
  6. Omkostnader för testunderhåll:
    Frekventa gränssnittsändringar gör tester ömtåliga.
    Fixera: Använd Page Object Model (POM) och versionskontroll för enkla uppdateringar.
  7. Integrationsutmaningar:
    CI/CD-pipelines kan misslyckas på grund av problem med drivrutiner.
    Fixera: Använda Selenium Manager (Selenium 4+) eller WebDriver Manager för att automatiskt hantera drivrutiner.

Kort sagt: bro Selenium Problem härrör från dålig synkronisering eller spröda lokaliseringsanordningar – båda lösbara genom smartare väntetider, modulär design och kontinuerligt underhåll.

Vanliga frågor:

Selenium är ett automatiseringsramverk med öppen källkod som används för att testa webbapplikationer i olika webbläsare och plattformar. Det låter testare simulera användarinteraktioner som klick, formulärinlämningar och navigering med hjälp av olika programmeringsspråk.

Selenium används främst för att automatisera webbläsarbaserad testning. Den hjälper till att säkerställa att webbapplikationer fungerar korrekt i olika webbläsare, stöder regressions- och funktionstestning och integreras enkelt med CI/CD-pipelines för kontinuerlig testning.

Selenium består av fyra huvudkomponenter: Selenium IDE (inspelnings-/uppspelningsverktyg), Selenium RC (föråldrad), Selenium webbdrivrutin (modernt automatiserings-API) och Selenium Rutnät (för parallell testkörning i flera webbläsare).

De fyra typerna är: Selenium IDE för inspelning av tester, Selenium RC för äldre automatisering, Selenium webbdrivrutin för direkt webbläsarkontroll, och Selenium Rutnät för distribuerad, parallell testning över flera webbläsare.

Selenium WebDriver är kärnkomponenten som interagerar direkt med webbläsare med hjälp av inbyggda API:er. Den gör det möjligt för utvecklare att skriva robusta automatiseringsskript för flera webbläsare i språk som Java, Pythonoch C#, utan att förlita sig på JavaManus.

Selenium IDE är nybörjarvänlig och erbjuder inspelnings- och uppspelningsfunktioner via webbläsartillägg. webbdrivrutin, å andra sidan, är kodbaserat, stöder flera språk och tillhandahåller avancerad, skalbar webbläsarautomation som är lämpad för verkliga testramverk.

Sammanfatta detta inlägg med: