Wat is selenium? Inleiding tot het testen van seleniumautomatisering

Inhoudsopgave:

Anonim

Wat is selenium?

Selenium is een gratis (open-source) geautomatiseerd testraamwerk dat wordt gebruikt om webapplicaties in verschillende browsers en platforms te valideren. U kunt meerdere programmeertalen gebruiken, zoals Java, C #, Python, enz. Om Selenium-testscripts te maken. Testen met de Selenium-testtool wordt meestal Selenium-testen genoemd.

Selenium Software is niet slechts een enkele tool, maar een softwarepakket, waarbij elk stuk voorziet in verschillende Selenium QA-testbehoeften van een organisatie. Hier is de lijst met tools

  • Selenium Integrated Development Environment (IDE)
  • Selenium-afstandsbediening (RC)
  • WebDriver
  • Selenium Grid
Inleiding tot selenium

Op dit moment zijn Selenium RC en WebDriver samengevoegd tot één raamwerk om Selenium 2 te vormen . Selenium 1 verwijst trouwens naar Selenium RC.

Klik hier als de video niet toegankelijk is

In deze tutorial leer je:

  • Wat is selenium?
  • Wie heeft Selenium ontwikkeld?
  • De kwestie van hetzelfde oorsprongsbeleid
  • Geboorte van Selenium-afstandsbediening (Selenium RC)
  • Geboorte van Selenium Grid
  • Geboorte van Selenium IDE
  • Geboorte van WebDriver
  • Geboorte van selenium 2
  • Dus, waarom de naam selenium?
  • Korte introductie Selenium IDE
  • Korte introductie Selenium afstandsbediening (Selenium RC)
  • Korte introductie WebDriver
  • Selenium Grid
  • Opmerking over browser- en omgevingsondersteuning
  • Hoe u de juiste seleniumtool kiest voor uw behoefte
  • Een vergelijking tussen selenium en QTP (nu UFT)
  • Voordelen van QTP ten opzichte van selenium

Wie heeft Selenium ontwikkeld?

Omdat Selenium een ​​verzameling verschillende tools is, had het ook verschillende ontwikkelaars. Hieronder staan ​​de belangrijkste personen die opmerkelijke bijdragen hebben geleverd aan het Selenium-project

In de eerste plaats werd Selenium in 2004 gemaakt door Jason Huggins . Als engineer bij ThoughtWorks werkte hij aan een webapplicatie die regelmatig moest worden getest. Toen hij zich realiseerde dat het herhaaldelijk handmatig testen van hun applicatie steeds inefficiënter werd, creëerde hij een JavaScript-programma dat automatisch de acties van de browser zou besturen. Hij noemde dit programma de " JavaScriptTestRunner ."

Omdat hij potentieel zag in dit idee om andere webapplicaties te helpen automatiseren, maakte hij JavaScriptRunner open-source, dat later werd omgedoopt tot Selenium Core .

De kwestie van hetzelfde oorsprongsbeleid

Hetzelfde Origin-beleid verbiedt JavaScript-code om toegang te krijgen tot elementen van een domein dat verschilt van waar het werd gelanceerd . De HTML-code in www.google.com gebruikt bijvoorbeeld een JavaScript-programma "randomScript.js". Hetzelfde oorsprongsbeleid staat randomScript.js alleen toe om pagina's op google.com te openen, zoals google.com/mail, google.com/login of google.com/signup. Het heeft echter geen toegang tot pagina's van verschillende sites, zoals yahoo.com/search of guru99.com, omdat ze tot verschillende domeinen behoren.

Dit is de reden waarom testers voorafgaand aan Selenium RC lokale kopieën moesten installeren van zowel Selenium Core (een JavaScript-programma) als de webserver met de webtoepassing die werd getest, zodat ze tot hetzelfde domein zouden behoren.

Geboorte van Selenium-afstandsbediening (Selenium RC)

Helaas; testers die Selenium Core gebruikten, moesten de hele te testen applicatie en de webserver op hun eigen lokale computers installeren vanwege de beperkingen opgelegd door hetzelfde oorsprongsbeleid. Dus een andere ingenieur van ThoughtWork, Paul Hammant , besloot een server te maken die zal fungeren als een HTTP-proxy om de browser te laten geloven dat Selenium Core en de webapplicatie die wordt getest uit hetzelfde domein komen. Dit systeem werd bekend als de Selenium Remote Control of Selenium 1 .

Geboorte van Selenium Grid

Selenium Grid is ontwikkeld door Patrick Lightbody om in de behoefte te voorzien om de testuitvoeringstijden zo kort mogelijk te houden. Aanvankelijk noemde hij het systeem " Hosted QA ." Het was in staat om browserschermafbeeldingen vast te leggen tijdens belangrijke fasen, en ook om Selenium-commando's tegelijkertijd naar verschillende machines te sturen.

Geboorte van Selenium IDE

Shinya Kasatani uit Japan heeft Selenium IDE gemaakt , een Firefox-extensie die de browser kan automatiseren via een opname- en afspeelfunctie. Hij kwam met dit idee om de snelheid van het maken van testcases verder te verhogen. Hij schonk Selenium IDE aan het Selenium Project in 2006 .

Geboorte van WebDriver

Simon Stewart creëerde WebDriver rond 2006 toen browsers en webapplicaties krachtiger en beperkter werden met JavaScript-programma's zoals Selenium Core. Het was het eerste platformonafhankelijke testraamwerk dat de browser vanaf het OS-niveau kon besturen.

Geboorte van selenium 2


In 2008 besloot het hele Selenium-team om WebDriver en Selenium RC samen te voegen tot een krachtigere tool genaamd Selenium 2 , met WebDriver als de kern . Momenteel wordt Selenium RC nog steeds ontwikkeld, maar alleen in onderhoudsmodus. De meeste inspanningen van het Selenium Project zijn nu gericht op Selenium 2.

Dus, waarom de naam selenium?

De naam Selenium kwam van een grap die Jason een keer tegen zijn team had gekraakt. Tijdens de ontwikkeling van Selenium was een ander geautomatiseerd testraamwerk populair, gemaakt door het bedrijf genaamd Mercury Interactive (ja, het bedrijf dat oorspronkelijk QTP maakte voordat het door HP werd overgenomen). Omdat selenium een ​​bekend tegengif is voor kwikvergiftiging, stelde Jason die naam voor en zijn teamgenoten namen het aan. Dus zo moeten we dit raamwerk tot op heden noemen.

Korte introductie Selenium IDE

Selenium Integrated Development Environment (IDE) is het eenvoudigste framework in de Selenium-suite en is het gemakkelijkst om te leren . Het is een Firefox-plug-in die u zo gemakkelijk mogelijk kunt installeren met andere plug-ins. Vanwege zijn eenvoud mag Selenium IDE echter alleen worden gebruikt als hulpmiddel voor het maken van prototypes . Als u meer geavanceerde testcases wilt maken, moet u Selenium RC of WebDriver gebruiken.

Korte introductie Selenium afstandsbediening (Selenium RC)

Selenium RC was lange tijd het vlaggenschip-testraamwerk van het hele Selenium-project. Dit is de eerste geautomatiseerde webtesttool waarmee gebruikers een programmeertaal konden gebruiken die ze verkiezen . Vanaf versie 2.25.0 ondersteunt RC de volgende programmeertalen:

  • Java
  • C #
  • Php
  • Python
  • Perl
  • Robijn

Korte introductie WebDriver

De WebDriver bewijst zichzelf in veel opzichten beter te zijn dan zowel Selenium IDE als Selenium RC . Het implementeert een modernere en stabielere benadering bij het automatiseren van de acties van de browser. WebDriver vertrouwt, in tegenstelling tot Selenium RC, niet op JavaScript voor Selenium Automation Testing. 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

Selenium Grid

Selenium Grid is een tool die samen met Selenium RC wordt gebruikt om parallelle tests uit te voeren op verschillende machines en verschillende browsers tegelijk. Parallelle uitvoering betekent dat u meerdere tests tegelijk uitvoert.

Kenmerken:

  • Maakt gelijktijdige uitvoering van tests in meerdere browsers en omgevingen mogelijk.
  • Bespaart enorm veel tijd .
  • Maakt gebruik van het hub-and-nodes- concept. De hub fungeert als een centrale bron van Selenium-opdrachten voor elk aangesloten knooppunt.

Opmerking over browser- en omgevingsondersteuning

Vanwege hun architectonische verschillen ondersteunen Selenium IDE, Selenium RC en WebDriver verschillende sets browsers en besturingsomgevingen.

Selenium IDE WebDriver
Browser- ondersteuning Mozilla Firefox Internet Explorer versies 6 tot 11, zowel 32 als 64-bit Microsoft Edge versie 12.10240 en hoger (gedeeltelijke ondersteuning van sommige functionaliteiten in ontwikkeling) Firefox 3.0 en hoger Google Chrome 12.0. en hoger Opera 11.5 en hoger Android - 2.3 en hoger voor telefoons en tablets (apparaten en emulators) iOS 3+ voor telefoons (apparaten en emulators) en 3.2+ voor tablets (apparaten en emulators) HtmlUnit 2.9 en hoger
Besturingssysteem Windows, Mac OS X, Linux Alle besturingssystemen waarop de bovenstaande browsers kunnen worden uitgevoerd.

Opmerking: Selenium WebDriver wordt genoemd als de opvolger van Selenium RC, die is verouderd en officieel is aangekondigd door SeleniumHQ.

Hoe u de juiste seleniumtool kiest voor uw behoefte

Tool Waarom zou je kiezen?

Selenium IDE

  • Om meer te weten te komen over concepten over geautomatiseerd testen en selenium, waaronder:
  • Selenese commando's zoals typen, openen, clickAndWait, beweren, verifiëren, etc.
  • Locators zoals id, naam, xpath, css-selector, etc.
  • Aangepaste JavaScript-code uitvoeren met runScript
  • Testcases exporteren in verschillende formaten.
  • Om tests te maken met weinig of geen voorkennis in programmeren.
  • Om eenvoudige testcases en testsuites te maken die u later naar RC of WebDriver kunt exporteren.
  • Om een ​​webtoepassing alleen te testen met Firefox en Chrome.

Selenium RC

  • Om een ​​test te ontwerpen met een meer expressieve taal dan Selenese
  • 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 Grid.
  • Om uw applicatie te testen met een nieuwe browser die JavaScript ondersteunt.
  • Om webapplicaties te testen met complexe op AJAX gebaseerde scenario's.

WebDriver

  • Om een ​​bepaalde programmeertaal te gebruiken bij het ontwerpen van uw testcase.
  • Om applicaties te testen die rijk zijn aan op AJAX gebaseerde functionaliteiten.
  • Om tests uit te voeren op de HtmlUnit-browser.
  • Om aangepaste testresultaten te creëren.

Selenium Grid

  • Om uw Selenium RC-scripts tegelijkertijd in meerdere browsers en besturingssystemen uit te voeren.
  • Om een ​​enorme testsuite uit te voeren, moet die zo snel mogelijk zijn voltooid.

Een vergelijking tussen selenium en QTP (nu UFT)

Quick Test Professional (QTP) is een eigen geautomatiseerde testtool die voorheen eigendom was van het bedrijf Mercury Interactive voordat het in 2006 werd overgenomen door Hewlett-Packard . De Selenium Tool Suite heeft veel voordelen ten opzichte van QTP, zoals hieronder wordt beschreven -

Voordelen en voordelen van selenium ten opzichte van QTP

Selenium QTP
Open source , gratis te gebruiken en gratis. Commercieel .
Zeer uitbreidbaar Beperkte uitbreidingen
Kan tests uitvoeren in verschillende browsers Kan alleen tests uitvoeren in Firefox , Internet Explorer en Chrome
Ondersteunt verschillende besturingssystemen Alleen te gebruiken in Windows
Ondersteunt mobiele apparaten QTP Ondersteunt testautomatisering van mobiele apps (iOS en Android) met behulp van HP-oplossing genaamd - HP Mobile Center
Kan tests uitvoeren terwijl de browser is geminimaliseerd Moet de te testen applicatie hebben om zichtbaar te zijn op de desktop
Kan tests parallel uitvoeren . Kan alleen parallel worden uitgevoerd, maar met behulp van Quality Center, wat weer een betaald product is.

Voordelen van QTP ten opzichte van selenium

Voordelen van QTP ten opzichte van selenium
QTP Selenium
Kan zowel web- als desktopapplicaties testen Kan alleen webapplicaties testen
Wordt geleverd met een ingebouwde objectrepository Heeft geen ingebouwde objectrepository
Automatiseert sneller dan Selenium omdat het een volledig functionele IDE is. Automatiseert langzamer omdat het geen native IDE heeft en alleen IDE van derden kan worden gebruikt voor ontwikkeling
Datagestuurd testen is gemakkelijker uit te voeren omdat het ingebouwde globale en lokale gegevenstabellen heeft . Gegevensgestuurd testen is omslachtiger omdat u moet vertrouwen op de mogelijkheden van de programmeertaal om waarden voor uw testgegevens in te stellen
Heeft toegang tot bedieningselementen in de browser (zoals de favorietenbalk, adresbalk, knoppen Vorige en Volgende, enz.) Geen toegang tot elementen buiten de te testen webtoepassing
Biedt professionele klantenondersteuning Er wordt geen officiële gebruikersondersteuning aangeboden.
Heeft native mogelijkheid om testgegevens naar externe formaten te exporteren Heeft geen native mogelijkheid om runtime-gegevens naar externe indelingen te exporteren
Ondersteuning voor parametrering is gebouwd Parametrering kan worden gedaan via programmeren, maar is moeilijk te implementeren.
Testrapporten worden automatisch gegenereerd Geen native ondersteuning om test- / bugrapporten te genereren.

Hoewel het duidelijk is dat QTP meer geavanceerde mogelijkheden heeft, weegt selenium op drie hoofdgebieden zwaarder dan QTP:

  • Kosten (omdat Selenium volledig gratis is)
  • Flexibiliteit (vanwege een aantal programmeertalen, browsers en platforms die het kan ondersteunen)
  • Parallel testen (iets waar QTP toe in staat is, maar alleen met gebruik van Quality Center)

Overzicht

  • De volledige Selenium Software Testing Suite bestaat uit vier componenten:
  • Selenium IDE, een Firefox-add-on die u alleen kunt gebruiken bij het maken van relatief eenvoudige testcases en testsuites.
  • Selenium Remote Control, ook wel bekend als Selenium 1, de eerste Selenium-tool waarmee gebruikers programmeertalen konden gebruiken bij het maken van complexe tests.
  • WebDriver, de nieuwere doorbraak waarmee uw testscripts rechtstreeks met de browser kunnen communiceren en deze dus vanaf het OS-niveau kunnen besturen.
  • Selenium Grid is ook een tool die wordt gebruikt met Selenium RC om parallelle tests uit te voeren in verschillende browsers en besturingssystemen.
  • Selenium RC en WebDriver werden samengevoegd tot Selenium 2.
  • Selenium is voordeliger dan QTP in termen van kosten en flexibiliteit. Het stelt u ook in staat om tests parallel uit te voeren, in tegenstelling tot QTP, waar u alleen tests achter elkaar mag uitvoeren.