Wat is Selenium? Introductie Tutorial

⚡ Slimme samenvatting

Selenium is een gratis, open-source, geautomatiseerd testframework dat is ontworpen om webapplicaties te valideren in verschillende browsers en platforms met behulp van meerdere programmeertalen. Het maakt robuuste, efficiënte en schaalbare testautomatisering mogelijk voor moderne QA-praktijken.

  • Belangrijkste principe: Selenium faciliteert geautomatiseerde validatie van webapplicaties op diverse browsers en besturingssystemen, met ondersteuning van talen zoals Java, C#, Python En nog veel meer.
  • Structuur van de toolsuite: Selenium bestaat uit vier hoofdcomponenten: IDE, Remote Control, WebDriver en Grid. Deze componenten richten zich elk op hun eigen automatiseringsbehoeften.
  • IDE & Prototyping: Selenium IDE is een browserextensie voor het snel aanmaken van cases en prototypes.pingmaar is het meest geschikt voor eenvoudige testscenario's.
  • Evolutie van afstandsbediening: Selenium RC, dat zich nu in de onderhoudsmodus bevindt, was het eerste framework dat testscripts in meerdere talen toeliet, waardoor beperkingen in het browserbeleid werden opgelost.
  • WebDriver-implementatie: WebDriver communiceert rechtstreeks met browsers en biedt controle op besturingssysteemniveau en superieure stabiliteit voor complexe automatisering.
  • Raster voor parallellisme: Selenium Met Grid kunt u tests parallel uitvoeren op meerdere machines en browsers, waardoor de duur van de testcyclus drastisch wordt verkort.
  • Ondersteuning voor meerdere browsers en platforms: Selenium ondersteunt een breed scala aan browsers en besturingssystemen en biedt ongeëvenaarde flexibiliteit voor web-QA.
  • Impact in de echte wereld: Teams gebruiken Selenium om releasecycli te versnellen, handmatig testen te verminderen en een consistente UX in alle browsers te garanderen, met bewezen resultaten op het gebied van SaaS, CI/CD en feature delivery.

wat is selenium

Wat is Selenium?

Selenium is een gratis (open-source) geautomatiseerd testframework dat wordt gebruikt om webapplicaties in verschillende browsers en platforms te valideren. U kunt meerdere programmeertalen gebruiken, zoals Java, C#, Python, enz. om te creëren Selenium Testscripts. Testen gedaan met behulp van de Selenium testtool wordt meestal aangeduid als Selenium Testen.

Deskundige inzichten

Vermijd het gebruik van vaste slaapvertragingen in je tests. Gebruik in plaats daarvan expliciete wachttijden (zoals WebDriverWait) om te wachten tot elementen geladen zijn. Dit maakt je scripts betrouwbaarder en sneller, omdat ze dynamisch reageren op de werkelijke pagina-omstandigheden – een belangrijke best practice voor studenten overal ter wereld, te beginnen met Selenium. '

— Himanshu Sheth, Selenium Ervaren

👉 Schrijf je gratis in voor Live Selenium Testproject

Selenium Gereedschapssuite

Selenium Software is niet zomaar een enkel hulpmiddel, maar een pakket software, waarbij elk onderdeel op een ander doel is gericht Selenium QA-testbehoeften van een organisatie. Hier is de lijst met hulpmiddelen

  • Selenium Geïntegreerde ontwikkelomgeving (IDE)
  • Selenium Afstandsbediening (RC)
  • webdriver
  • Selenium Raster

Selenium Gereedschapssuite

Op het moment, Selenium RC en WebDriver worden samengevoegd tot één enkel raamwerk Selenium 2. Selenium 1 verwijst overigens naar Selenium RC.

Video Tutorial Selenium

Klik hier als de video niet toegankelijk is

Wie ontwikkelde Selenium?

Sinds Selenium is een verzameling van verschillende tools, maar had ook verschillende ontwikkelaars. Hieronder vindt u de belangrijkste personen die opmerkelijke bijdragen hebben geleverd aan de Selenium Project

Ontwikkelde Selenium

In de eerste plaats, Selenium was gemaakt door Jason Huggins in 2004Als ingenieur bij ThoughtWorks werkte hij aan een webapplicatie die regelmatig getest moest worden. Toen hij zich realiseerde dat de repetitieve handmatige tests van hun applicatie steeds inefficiënter werden, creëerde hij een JavaScript programma dat automatisch de acties van de browser zou besturen. Hij noemde dit programma de "JavaScriptTestRunner.”

Hij zag potentieel in dit idee om andere webapplicaties te helpen automatiseren JavaScriptRunner open-source, dat later werd hernoemd Selenium Kern. Voor degenen die geïnteresseerd zijn in het verkennen van andere opties voor het testen van webapplicaties, bekijk deze eens Selenium alternatieven.

Hetzelfde probleem met het oorsprongsbeleid

Hetzelfde Origin-beleid verbiedt JavaScriptcode die toegang krijgt tot elementen van een ander domein dan waar het is gestart. De HTML-code in www.google.com gebruikt bijvoorbeeld een JavaScriptprogramma "randomScript.js". Hetzelfde oorsprongsbeleid staat randomScript.js alleen toe om toegang te krijgen tot pagina's binnen google.com, zoals google.com/mail, google.com/login of google.com/signup. Het kan echter geen toegang krijgen tot pagina's van andere sites, zoals yahoo.com/search of guru99.com, omdat deze tot verschillende domeinen behoren.

Hetzelfde probleem met het oorsprongsbeleid

Dit is de reden waarom, voorafgaand aan Selenium RC moesten testers lokale kopieën van beide installeren Selenium Kern (een JavaScriptprogramma) en de webserver met de te testen webapplicatie, zodat ze tot hetzelfde domein behoren

Geboorte van Selenium Afstandsbediening (Selenium RC)

Paul Hammant

Helaas gebruiken testers Selenium Core moest de hele te testen applicatie en de webserver op hun eigen lokale computers installeren vanwege de beperkingen die werden opgelegd door de beleid van dezelfde oorsprong. Dus nog een ingenieur van ThoughtWorks, Paul Hammantbesloten een server te creëren die zou fungeren als een HTTP-proxy om de browser te 'misleiden' door hem te laten geloven dat Selenium Core en de geteste webapplicatie komen uit hetzelfde domein. Dit systeem werd bekend als de Selenium Afstandsbediening or Selenium 1.

Geboorte van Selenium Raster

Patrick Lichtlichaam

Selenium Grid is ontwikkeld door Patrick Lichtlichaam om tegemoet te komen aan de noodzaak om de uitvoeringstijden van tests zoveel mogelijk te minimaliseren. Aanvankelijk noemde hij het systeem “Gehoste QA.” Het was in staat om browser-screenshots te maken tijdens belangrijke fasen, en ook van uitzenden Selenium opdrachten tegelijkertijd naar verschillende machines sturen.

Geboorte van Selenium IDE

Shinya Kasatani

Shinya Kasatani van Japan gecreëerd Selenium IDE, een Firefox en een Chrome-extensie die de browser kan automatiseren via een opname- en afspeelfunctie. Hij bedacht dit idee om de snelheid van het maken van testcases verder te verhogen. Hij doneerde Selenium IDE naar de Selenium Projecteren in 2006.

Geboorte van WebDriver

Simon Stewart

Simon Stewart WebDriver circa gemaakt 2006 toen browsers en webapplicaties krachtiger en restrictiever werden JavaScriptprogramma's zoals Selenium Kern. Het was het eerste platformonafhankelijke testframework dat de browser op besturingssysteemniveau kon aansturen.

Geboorte van Selenium 2

In 2008De hele Selenium Het team besloot WebDriver en Selenium RC om een ​​krachtiger instrument te vormen genaamd Selenium 2met WebDriver is de kern. Momenteel, Selenium RC is nog steeds in ontwikkeling, maar alleen in onderhoudsmodus. De meeste Selenium De inspanningen van het Project zijn nu gericht op Selenium 2.

Dus, waarom de naam Selenium?

De naam Selenium kwam voort uit een grap die Jason ooit tegen zijn team maakte. Tijdens Selenium's ontwikkeling, een andere geautomatiseerd testen framework werd in de volksmond gemaakt door het bedrijf genaamd Mercury Interactief (ja, het bedrijf dat het oorspronkelijk maakte) QTP (voordat het door HP werd overgenomen). Selenium is een bekend tegengif voor Mercury vergiftiging suggereerde Jason die naam en zijn teamgenoten namen die over. Dus zo hebben we dit raamwerk tot op heden kunnen noemen.

Waarom de naam Selenium

Wat is Selenium IDE?

Selenium Geïntegreerde ontwikkelomgeving (IDE) is de eenvoudigste raamwerk in de Selenium suite en is de gemakkelijkste om te leren. Het is Chrome en Firefox inpluggen die u net zo eenvoudig kunt installeren als met andere plug-ins. Door zijn eenvoud is het echter Selenium IDE mag alleen worden gebruikt als prototypeping tools. Als u geavanceerdere testgevallen wilt maken, moet u een van beide gebruiken Selenium RC of WebDriver.

Selenium IDE

Wat is Selenium Afstandsbediening (Selenium RC)?

Selenium RC was de vlaggenschip testframework Van het geheel Selenium project al langere tijd. Dit is de eerste geautomatiseerde webtesten tool dat stelt gebruikers in staat een programmeertaal te gebruiken die zij verkiezenVanaf versie 2.25.0 ondersteunt RC de volgende programmeertalen:

Selenium Afstandsbediening (Selenium RC)

Wat is WebDriver?

De WebDriver blijkt beter te zijn dan Selenium IDE en Selenium RC in veel aspecten. Het implementeert een modernere en stabielere aanpak bij het automatiseren van de acties van de browser. WebDriver, in tegenstelling tot Selenium RC, vertrouwt niet op JavaScript voor Selenium Automatisering testen. Het bestuurt de browser door er rechtstreeks mee te communiceren.

De ondersteunde talen zijn dezelfde als die in Selenium RC.

  • Java
  • C#
  • PHP
  • Python
  • Perl
  • Robijn

Webstuurprogramma

Wat is Selenium Rooster?

Selenium Raster is een hulpmiddel gebruikt samen met Selenium RC om te draaien parallelle testen op verschillende machines en verschillende browsers tegelijkertijd. Parallelle uitvoering betekent dat meerdere tests tegelijk worden uitgevoerd.

Kenmerken:

  • Schakelt gelijktijdig uitvoeren van tests in meerdere browsers en omgevingen.
  • Bespaart tijd enorm.
  • Maakt gebruik van de hub-en-knooppunten concept. De hub fungeert als een centrale bron van Selenium commando's naar elk knooppunt dat ermee verbonden is.

Selenium Browser- en omgevingsondersteuning

Vanwege hun architectonische verschillen, Selenium SDI, Selenium RC en WebDriver ondersteunen verschillende browsers en besturingssystemen.

  Selenium IDE webdriver
Browserondersteuning mozilla Firefox en Chrome Google Chrome 12+
Firefox
Internet Explorer 7+ en Edge
Safari,
HtmlUnit en PhantomUnit
Operating-systeem Windows, Mac OS X, Linux Alle besturingssystemen waarop de bovenstaande browsers kunnen draaien.

Let op: Opera Chauffeur werkt niet meer

Hoe kies je het juiste? Selenium Hulpmiddel voor uw behoeften

Gereedschap Waarom zou je kiezen?
Selenium IDE
  • Om meer te leren over concepten van geautomatiseerd testen en Selenium, Waaronder:
  • Selenese commando's zoals type, open, clickAndWait, assert, verifiëren, etc.
  • Locators zoals id, naam, xpath, css-selector, enz.
  • Maatwerk uitvoeren JavaScriptcode met behulp van runScript
  • Testgevallen exporteren in verschillende formaten.
  • Om tests te maken met weinig of geen voorkennis van programmeren.
  • Om eenvoudige testcases en testsuites te maken die u later naar RC of WebDriver kunt exporteren.
  • Om een ​​webapplicatie tegen te testen Firefox en alleen Chrome.
Selenium RC
  • Een test ontwerpen met een expressievere taal dan Selenees
  • Om uw test uit te voeren met verschillende browsers (behalve HtmlUnit) op verschillende besturingssystemen.
  • Om uw tests in meerdere omgevingen te implementeren met behulp van Selenium Raster.
  • Om uw applicatie te testen tegen een nieuwe browser die ondersteuning biedt JavaScript.
  • Om webapplicaties te testen met complexe AJAX-scenario's.
webdriver
  • Om een ​​bepaalde programmeertaal te gebruiken bij het ontwerpen van uw testcase.
  • Om applicaties te testen die rijk zijn aan AJAX-gebaseerde functionaliteiten.
  • Om tests uit te voeren in de HtmlUnit-browser.
  • Om aangepaste testresultaten te creëren.
Selenium Raster
  • Om je te runnen Selenium RC-scripts in meerdere browsers en besturingssystemen tegelijkertijd.
  • Om een ​​enorme testsuite uit te voeren die zo snel mogelijk voltooid moet zijn.

Casestudy's uit de echte wereld

🔍 Case Study 1: Cross-browser compatibiliteit voor SaaS Dashboard

Scenario

Een software-as-a-servicebedrijf bereidde zich voor op de release van een analysedashboard dat consistent moest functioneren in moderne browsers (Chrome, Firefox, Edge, Safari).

Challenge

Handmatig testen op elke browser was tijdrovend, foutgevoelig en kon de snelle ontwikkelingsiteraties niet bijhouden.

Oplossing met Selenium

Een QA-ingenieur heeft een Selenium Raster ingesteld om dezelfde testsuite gelijktijdig uit te voeren op meerdere browsers en besturingssysteemcombinaties. De tests werden geschreven in Python gebruik Selenium WebDriver voor acties zoals inloggen, grafiekfiltering en gegevensexport.

Resultaat

  • De regressieduur is met 80% verminderd.
  • Browserspecifieke weergavefouten werden al vroeg ontdekt (bijvoorbeeld verkeerd uitgelijnde grafieken in Internet Explorer).
  • Handhaafde een consistente UX voor het dashboard in de hele browsermatrix zonder extra handmatige cycli.

⚙️ Case Study 2: CI/CD-integratie voor web-app via Selenium + TestNG

Scenario

Een middelgroot webontwikkelingsbedrijf vertrouwt op een CI/CD-pipeline die gebruikmaakt van JenkinsZe moesten ervoor zorgen dat de belangrijkste gebruikerservaringen na elke codewijziging bleven werken.

Challenge

Nieuwe implementaties verstoorden soms de gebruikersprocessen, zoals inloggen en het verzenden van formulieren.ping detectie tot aan handmatige controle aan het einde van de dag.

Oplossing met Selenium

Een tester heeft een JavaGebaseerde Selenium WebDriver-suite geïntegreerd met TestNGDe tests omvatten authenticatie, profielupdates en zoekfunctionaliteiten. Deze werden op elk apparaat uitgevoerd. Jenkins bouwen, gebruikmakend van parallelle uitvoering en browserparameterisatie.

Resultaat

  • Er is fail-fast feedback bereikt: gebroken stromen werden onmiddellijk gemarkeerd.
  • Het aantal bugs na implementatie is met ruim 60% verminderd.
  • Hierdoor konden ontwikkelaars problemen aanpakken voordat deze de QA-procedure bereikten.

🚀 Case Study 3: Versnelde functie-release voor Travel Aggregator

Scenario

Een reisaggregatorplatform moest een vernieuwde functie voor het boeken van vluchten lanceren. Handmatige regressietests op meer dan 10 pagina's duurden dagen en blokkeerden de release.

Challenge

De druk om de time-to-market te verkorten kon de handmatige testcycli niet inhalen, waardoor het risico bestond op vertragingen of een lagere kwaliteit.

Oplossing met Selenium & Pagina-objectmodel

Een QA-automatiseringsleider introduceerde een Page Object Model (POM)-structuur in C#. Selenium WebDriver-scripts kapselden pagina-elementen en acties in (vluchten zoeken, filters toepassen en betalingsgevallen). Geautomatiseerde testruns werden elke nacht geactiveerd op GitLab CI.

Resultaat

  • De testtijd daalde van 3 dagen naar slechts 4 uur.
  • Door scripts opnieuw te gebruiken voor meerdere functies, wordt de scriptinspanning met 50% verminderd.
  • Het vertrouwen nam toe: de release werd op tijd uitgebracht, met minimale bug-rapporten.

Veelgestelde Selenium Uitdagingen (en oplossingen)

Hoewel Selenium is krachtig, testers worden vaak geconfronteerd met uitdagingen die de betrouwbaarheid en snelheid kunnen beïnvloeden. Hier zijn enkele veelvoorkomende problemen en hoe u ze kunt oplossen:

  1. Flauwe tests:
    Tests kunnen willekeurig mislukken vanwege timing- of netwerkproblemen.
    Fix: Gebruik expliciete wacht- en stabiele locators; vermijd Thread.sleep().
  2. Dynamische webelementen:
    Het wijzigen van element-ID's of XPaths kan leiden tot 'element niet gevonden'-fouten.
    Fix: Gebruik relatieve XPaths, CSS-selectors of dynamische kenmerkverwerking.
  3. Syncchronisatieproblemen:
    Elementen laden langzamer dan de uitvoering van het script.
    Fix: Implementeer WebDriverWait met de verwachte voorwaarden.
  4. Inconsistenties tussen browsers:
    Tests gedragen zich anders op Chrome, Firefox, of Rand.
    Fix: Voer tests uit op Selenium Grid- of cloudplatforms voor validatie tussen browsers.
  5. Pop-ups en waarschuwingen afhandelen:
    Onverwachte pop-ups kunnen de teststroom verstoren.
    Fix: Gebruik Selenium's Alert-interface of try-catch-blokken om ze op een elegante manier te verwerken.
  6. Overheadkosten voor testonderhoud:
    Regelmatige wijzigingen in de gebruikersinterface maken tests kwetsbaar.
    Fix: Gebruik Page Object Model (POM) en versiebeheer voor eenvoudige updates.
  7. Integratie-uitdagingen:
    CI/CD-pipelines kunnen mislukken vanwege problemen met drivers.
    Fix: Gebruik Selenium Beheerder (Selenium 4+) of WebDriver Manager om drivers automatisch te beheren.

In het kort: De meeste Selenium Problemen worden veroorzaakt door slechte synchronisatie of broze locators. Beide zijn op te lossen door slimmer te wachten, modulair ontwerp en continu onderhoud.

Veelgestelde vragen:

Selenium is een open-source automatiseringsframework dat wordt gebruikt om webapplicaties te testen op verschillende browsers en platforms. Het stelt testers in staat om gebruikersinteracties zoals klikken, formulierinzendingen en navigatie te simuleren met behulp van verschillende programmeertalen.

Selenium Wordt voornamelijk gebruikt voor het automatiseren van browsergebaseerde tests. Het zorgt ervoor dat webapplicaties correct werken in alle browsers, ondersteunt regressie- en functionele tests en integreert eenvoudig met CI/CD-pipelines voor continue tests.

Selenium bestaat uit vier hoofdonderdelen: Selenium IDE (opname-/afspeeltool), Selenium RC (verouderd), Selenium webdriver (moderne automatiserings-API), en Selenium Raster (voor parallelle, browser-onafhankelijke testuitvoering).

De vier typen zijn: Selenium IDE voor het opnemen van tests, Selenium RC voor legacy-automatisering, Selenium webdriver voor directe browsercontrole, en Selenium Raster voor gedistribueerde, parallelle tests in meerdere browsers.

Selenium WebDriver is de kerncomponent die rechtstreeks met browsers communiceert via native API's. Het stelt ontwikkelaars in staat om robuuste, browser-onafhankelijke automatiseringsscripts te schrijven in talen zoals Java, Pythonen C#, zonder afhankelijk te zijn van JavaScript.

Selenium IDE is beginnersvriendelijk en biedt opname- en afspeelfunctionaliteit via browserextensies. webdriveris daarentegen codegebaseerd, ondersteunt meerdere talen en biedt geavanceerde, schaalbare browserautomatisering die geschikt is voor testframeworks in de echte wereld.

Vat dit bericht samen met: