Er worden talloze uren besteed door ontwikkelaars aan het testen van de functionaliteit van een webapplicatie, zowel on-premises als off-premises.
Vóór Selenium werd het allemaal letterlijk met de hand gedaan: tientallen mensen testten honderden scripts in alle bestaande browsers, identificeerden problemen en probeerden de oorzaken van hun optreden te achterhalen.
Wat is selenium
Selenium werkt met de meeste programmeertalen die worden ondersteund door alle belangrijke besturingssystemen en browsers en wordt momenteel gebruikt door bedrijven zoals Netflix, Google, HubSpot, Fitbit en meer. De hele suite biedt een scala aan oplossingen voor verschillende testtaken en -behoeften.
Seleniumpak-infrastructuur
WebDriver
In de meeste gevallen, wanneer mensen over Selenium praten, bedoelen ze Selenium WebDriver. Het grootste deel van de productontwikkeling richt zich op dit element.
Testautomatisering in WebDriver wordt vaak vergeleken met het besturen van een taxi. Er zijn drie componenten betrokken bij het rijden en testen van taxi’s: klant (testengineer) – auto (browser) – taxichauffeur (WebDriver).
Volgens deze analogie vertelt de programmeur de bestuurder eerst hoe hij moet omgaan met de elementen van de browser. Vervolgens geeft WebDriver de browser (machine) opdrachten die ongeveer zo klinken: als de knop actief is, klik je op de knop. Daarna voorziet de browser de bestuurder van informatie over de waarden en statussen van de webelementen, die later naar het script worden gestuurd. Simpel gezegd, de Selenium WebDriver-tool wordt gebruikt om informatie te verzamelen en ervoor te zorgen dat de applicatie correct werkt, dat wil zeggen dat de bestuurder weet hoe hij moet rijden en waar hij heen moet.
Selenium IDE
Dit is een extensie voor Firefox. Het is niet ontworpen voor ontwikkeling, het is gemakkelijk te leren en het is perfect voor prototyping-taken.
Werken in Selenium IDE vereist geen programmeervaardigheden, omdat de plug-in in feite de acties van de ingenieur in de browser opneemt en herhaalt. Programmeurs beschouwen het niet als een onafhankelijk, volwaardig product, maar het is voldoende om met eenvoudige scripts te werken.
Seleniumraster
Hiermee kunt u parallelle tests uitvoeren op meerdere machines en browsers tegelijk. De belangrijkste functie van deze tool is om tijd te besparen. Als u bijvoorbeeld 100 tests moet uitvoeren om vier virtuele of fysieke machines in te stellen, wordt Selenium Grid gebruikt.

Aangezien browserscripts over het algemeen traag zijn, kan het gebruik van prestatietechnieken zoals parallelle tests helpen bij dit probleem. Het kan ook worden gebruikt om dezelfde applicatie in verschillende browsers parallel te testen, wanneer Firefox op de ene computer draait, Chrome op een andere, enzovoort. Het is mogelijk om verschillende configuraties te creëren door verschillende versies van browsers en besturingssystemen te combineren. Onnodig te zeggen dat Grid bij gebruik in grote productieomgevingen vier keer zoveel tijd bespaart.
Pluspunten
Selenium is niet de enige tool voor testautomatisering op de markt, maar het is de enige gratis tool die kan concurreren met betaalde producten. Katalon Studio is een levensvatbaar alternatief, maar het biedt niet zoveel talen, draait niet op Linux en heeft gewoon geen fanbase.
Het is niet verrassend dat zelfs grotere bedrijven geen haast hebben om naar betaalde sites te verhuizen en duizenden dollars weg te geven voor wat Selenium gratis doet. Het aantal bedrijven dat met Selenium werkt, bedraagt meer dan 55 duizend. Het marktaandeel in testen en automatisering bedraagt bijna 30%.
Ondersteuning voor talen, platforms, browsers:
- Java
- C#
- PHP
- Ruby
- Perl
- Python
- JavaScript
- Doelstelling-C
- Haskell
- R
- Vensters
- Linux
- Mac
- Android
- iOS
- Google Chrome
- Internet Explorer
- Firefox
- Safari
- Opera
- Microsoft Edge
- HtmlUnitDriver
Nadelen
Misschien is het enige significante nadeel dat Selenium alleen in webapplicaties kan worden gebruikt. Maar dit is meer een beperking, geen nadeel, aangezien WinAppDriver in Selenium kan worden geïntegreerd om desktoptoepassingen te testen.
Een beetje geschiedenis ter afsluiting
In 2004 creëerde Jason Huggins een JavaScript-framework dat is ontworpen om de maker te bevrijden van repetitieve handmatige tests. Het product, voorspelbaar eerst JavaScriptTestRunner genoemd, zou tests rechtstreeks in de browser kunnen uitvoeren, pagina-interacties kunnen beheren en opnieuw kunnen uitvoeren zonder handmatige invoer. Deze JavaScript-tool werd populair nadat Huggins zijn volledige potentieel realiseerde, het open source maakte en het omdoopte tot Selenium Remote Control. Het innovatieve was dat testers tot dan toe met geen enkele andere tool in hun programmeertaal naar keuze met de browser konden communiceren.
Het werd echter al snel duidelijk dat browsers beveiligingsbeperkingen toepasten op JavaScript, waardoor het onmogelijk was om de volledige kracht van de tool te gebruiken. In die tijd was Google een fervent gebruiker van Selenium en de technici deden hun best om de beperkingen te omzeilen. Een van hen, Simon Stewart, begon te werken aan een product dat rechtstreeks zou communiceren met browsers en noemde het WebDriver.