Selenium

Selenium

Selenium IDE.png
Basis data

ontwikkelaar ThoughtWorks
Publicatiejaar 2004
Huidige  versie 3.141.59
( 19 december 2018 )
besturingssysteem Microsoft Windows , Linux , macOS , Solaris , FreeBSD en andere Unix- varianten (gebaseerd op Java )
programmeertaal Java
Licentie Apache-licentie 2.0
selenium.dev

Selenium is een raamwerk voor het geautomatiseerd testen van software van webapplicaties , ontwikkeld door een programmeerteam van ThoughtWorks en gepubliceerd als gratis software onder de Apache 2.0-licentie . Het is een veel gebruikte tool en een van de meest populaire open source testtools.

Met Selenium is het mogelijk om interacties met een webapplicatie vast te leggen en deze testen automatisch zo vaak als nodig te herhalen. Het kan vooral ontwikkelaars van webapplicaties veel typen ontzorgen - bijvoorbeeld bij het invullen van webformulieren - en maakt het testen zo sneller, flexibeler en betrouwbaarder.

Selenium is puur gebaseerd op HTML en JavaScript . Voor een snelle start kan de Selenium IDE worden gebruikt . B. geïnstalleerd en getest worden als een Firefox- add-on: de gebruiker werkt alleen met Firefox, Selenium neemt de test op en speelt deze af.

geschiedenis

Jason Huggins richtte Selenium op in 2004 toen hij een intern testprogramma voor websites schreef voor zijn bedrijf ThoughtWorks . In de loop van de tijd kwamen steeds meer ThoughtWorks-medewerkers bij zijn werk, totdat Paul Hammant uiteindelijk bij het team kwam en de ontwikkeling van het programma leidde in de richting van wat nu Selenium Remote Control (RC) is.

In 2007 stapte Huggins over naar het softwarebedrijf Google , waar hij samen met andere programmeurs de verdere ontwikkeling en bugfixes van het programma leidde. Tegelijkertijd ontwikkelde Simon Stewart de browserbesturing Webdriver bij ThoughtWorks. Omdat het voor de ontwikkelaars van beide projecten niet verstandig leek om twee afzonderlijke projecten vooruit te helpen, besloten ze de twee projecten te combineren tot "Selenium Webdriver" of "Selenium 2.0".

In 2008 ontwikkelde Philippe Hanrigou "Selenium Grid", waarmee verschillende Selenium-instances gelijktijdig op een onbeperkt aantal computers kunnen worden uitgevoerd. Als gevolg hiervan werd de uitvoeringstijd voor grote teststructuren drastisch verkort.

De naam Selenium kwam van een grappige opmerking van Huggins, die in een e-mail zijn concurrent Mercury bespotte door te vermelden dat kwikvergiftiging kan worden genezen door selenium in te nemen .

Versies

Selenium 3

De definitieve versie 3.0 is beschikbaar sinds 13 oktober 2016. Daarin zijn onder meer de volgende wijzigingen of innovaties opgenomen:

Java
minimale versie is Java 8.
WebDriver-gebruikers
Foutcorrecties en eenvoudige updates vanaf versie 2.x mogelijk.
Selenium Grid-gebruikers
Foutcorrecties en eenvoudige updates vanaf versie 2.x mogelijk.
WebDriver API's
alleen deze API's worden nog steeds ondersteund.
Selenium RC API's
geen ondersteuning meer; Onderdeel van een "legacy" -pakket.
Firefox-ondersteuning
Vanaf Firefox 47.0.1 is Mozilla's GeckoDriver vereist.

Componenten

Selenium Core

De kernmodule bevat de volledige basisfunctionaliteit van Selenium, namelijk het testcommando API en de TestRunner. Met behulp van de kernmodule kan de website TestRunner.html met verschillende browsers worden geopend. Dit maakt compatibiliteitstests met verschillende browsertypes mogelijk.

Selenium IDE

Selenium IDE is een add-on voor Google Chrome en Mozilla Firefox , waarmee het mogelijk is om testgevallen rechtstreeks in de browser op te nemen door interactie met een webapplicatie en deze af te spelen in de browser. Naast de pure capture-replay-functionaliteit, kunnen controles worden geïntegreerd met behulp van verifiëren en beweren. Daarnaast wordt het stapsgewijs afspelen van testgevallen, het instellen van breekpunten om de testgevallen te controleren en het hergebruik van gedeelde testsequenties ondersteund. Individuele testcases kunnen worden gecombineerd tot testsuites.

Selenium Remote Control (RC) (verouderd)

RC is een verouderde module die een eigen serverinstantie biedt in de vorm van een proxy . Deze Selenium-server wordt op afstand bestuurd door een Selenium-clientstuurprogramma. Dit kan in verschillende programmeertalen, zoals: B. in Java , .NET , Perl , PHP , Python , Ruby . Met Java kunnen deze testgevallen worden uitgevoerd met bijvoorbeeld JUnit of TestNG . Het maakt testautomatisering van GUI- tests mogelijk in combinatie met continue integratie .

Met de release van Selenium 2 werd Selenium RC vervangen door Selenium WebDriver en gemarkeerd als verouderd, met de release van Selenium 3 werd RC verplaatst naar een ' legacy' -pakket en is het niet langer beschikbaar om te downloaden op de hoofdpagina van het project.

Selenium WebDriver

Selenium WebDriver is de opvolger van Selenium Remote Control. Het accepteert commando's (in Selenese of via de client-API) en stuurt ze door naar een browser. HtmlUnit is een specialiteit . Vanaf versie 3.0 maakt de HtmlUnit geen deel meer uit van de WebDriver. Dit is een headless webbrowser. De Selenium WebDriver wordt geïmplementeerd via een browserdriver, waarbij de meest voorkomende browsers worden ondersteund.

Selenium Grid

Selenium Grid is een uitbreiding van Selenium RC en maakt het mogelijk om parallel tests uit te voeren op meerdere servers om de duur van de testuitvoering te verkorten. Het Selenium-clientstuurprogramma maakt verbinding met de Selenium Hub-component in plaats van de Selenium-server. De hub stuurt op zijn beurt de tests door naar gratis Selenium-servers. Bestaande testcases voor Selenium RC kunnen met kleine aanpassingen ook worden gebruikt met Selenium Grid. De testgevallen moeten echter parallel worden uitgevoerd, b.v. B. met TestNG .

Gebruik van selenium

Diverse softwareproducten in de testomgeving zijn gebaseerd op Selenium, b.v. B .:

  • Gradenboog , een end-to-end testraamwerk voor AngularJS- applicaties,
  • WebTester , een UI-testautomatiseringsraamwerk
  • Appium , een open source testautomatiseringstool voor native en hybride mobiele applicaties (apps)
  • BrowserStack , een cloudgebaseerd testplatform voor mobiele en desktop-internettoepassingen

literatuur

web links

Individueel bewijs

  1. 19 december 2018 (geopend op 20 december 2018).
  2. 19 december 2018 (geopend op 4 maart 2021).
  3. In: Heise online - heise Developer. Heise Medien, 14 oktober 2016, geraadpleegd op 1 februari 2017 : "een van de meest gebruikte tools in webontwikkeling"
  4. 4 oktober 2016, geraadpleegd op 15 oktober 2016 (aankondiging van Selenium 3 in de blog van de ontwikkelaars).
  5. Opgehaald op 29 juli 2016 .